---恢复内容开始---

命名规则:

1、类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型 的相关命名)DO / BO / DTO / VO 等。

2、方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从 驼峰形式。

正例: localValue / getHttpMessage() / inputUserId

3、常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

正例: MAX_STOCK_COUNT 反例: MAX_COUNT

4、抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。

Java 流式输入输出

java中的数据的输入/输出操作以流(stream)方式进行;

java.io(输入输出站在程序的角度看)

字节流:InputStream  OutputStream

字符流: Reader Writer (2字节-UTF16)

节点流和处理流

节点流:

FileInputStream和FileOutputStream

FileDescriptor 是“文件描述符”。
FileDescriptor 可以被用来表示开放文件、开放套接字等。
以FileDescriptor表示文件来说:当FileDescriptor表示某文件时,我们可以通俗的将FileDescriptor看成是该文件。但是,我们不能直接通过FileDescriptor对该文件进行操作;若需要通过FileDescriptor对该文件进行操作,则需要新创建FileDescriptor对应的FileOutputStream,再对文件进行操作。

java文件路径,注意与windows系统进行区别

windows文件系统:    D:\workspace

java程序设计:    D:\\workspace\\hello.txt或者  D:/workspace/hello.txt

---java路径分隔符,一般为"/"或者"\\"

使用FileReader或BufferedReader从文件中读取字符或文本数据,并总是指定字符编码;使用FileInputStream从Java中文件或套接字中读取原始字节流。

import java.io.*;
public class TestInputStream {
public static void main(String[] args){
int b = 0;
FileInputStream in = null;//create a FileInputStream Object
try {
in = new FileInputStream("D:/workspace/helloworld.txt"); //opening a connection to an actual file
} catch(FileNotFoundException e) { // exception
System.out.println("找不到指定文件");
System.exit(-1);//捕获到异常,就退出程序。exit(a):a=0代表正常退出,a != 0代表非正常退出。
} try {
long num = 0;
while (( b = in.read()) != -1) { //Reads a byte of data from this input stream
System.out.println((char)b); // return -1 if the end of the file is reached.
num++;
} in.close(); //Closes this file input stream and releases any system resources associated with the stream.
System.out.println();
System.out.println("共读取了"+num+"个字节");
} catch(IOException e) {
System.out.println("文件读取错误");
System.exit(-1);
}
}
}

FileReader 和 FileWrite

import java.io.*;
public class HelloFileReader {
public static void main(String[] args){
FileReader fr = null;
int c =0;
try {
fr = new FileReader("D:/workspace/helloworld.txt");
int ln = 0;
while ((c = fr.read()) != -1){
System.out.println((char)c);
}
fr.close();
} catch(FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch (IOException e){
System.out.println("文件读取错误");
}
}
}

FileReader

import java.io.*;
public class TestFileWrite {
public static void main(String[] args){
FileWriter fw = null;
try {
fw = new FileWriter("D:/workspace/hello.bat");
for (int c = ;c <= ;c++){
fw.write(c);
}
fw.close();
} catch(IOException e) {
e.printStackTrace();
System.out.println("无法找到文件");
System.exit();//终止JVM
}
}
}
BufferedInputStream示例
import java.io.*;
public class TestBufferStream1 {
public static void main(String[] args){
try {
FileInputStream fis =
new FileInputStream("D:/workspace/helloworld.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
int c = ;
System.out.println((char)bis.read());
System.out.println((char)bis.read());
bis.mark();//直接从第100个开始读
for (int i = ;i < &&(c = bis.read()) != -;i++){
System.out.println((char) c+"");
}
System.out.println();//打印空行
bis.reset();//回到第100个的标记
for (int i = ;i < &&(c = bis.read()) != -;i++){
System.out.println((char) c+"");
}
bis.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}

BufferedWriter示例

import java.io.*;

public class TestBufferedWritee {
public static void main(String[] args){
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("D:/workspace/world.txt"));
BufferedReader br = new BufferedReader(
new FileReader("D:/workspace/world.txt"));//throw 的IllegalArgumentException 属于RuntimeException可以不做处理
String s = null;
for (int i = 1;i <= 100;i++){
s = String.valueOf(Math.random());//random() 随机产生0.0~1.0的双精度浮点型数据
bw.write(s);//Writes a single character.
bw.newLine();//行分隔符
}
bw.flush();//Flushes this buffered output stream.输出时,bufferter需要flush
while ((s = br.readLine()) != null){
System.out.println(s);
}
bw.close();
br.close();
} catch (IOException e){
e.printStackTrace();
}
}
}

IO学习的更多相关文章

  1. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  2. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  3. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  4. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  5. Java IO学习笔记一

    Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档 构造函数 File(File pare ...

  6. java IO 学习(三)

    java IO 学习(一)给了java io 进行分类,这一章学习这些类的常用方法 一.File 1.创建一个新的File的实例: /** * 创建一个新的File实例 */ File f = new ...

  7. nodejs的socket.io学习笔记

    socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...

  8. 阻塞 io 非阻塞 io 学习笔记

    阻塞 io 非阻塞 io 学习笔记

  9. Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

    作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...

  10. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

随机推荐

  1. centos7下安装docker(2镜像)

    docker最小的镜像——hello-world 下载镜像  docker pull docker pull hello-world 查看镜像  docker images docker images ...

  2. ROS 订阅图像节点

    博客 http://blog.csdn.net/github_30605157/article/details/50990493 参考ROS原网站 http://wiki.ros.org/image_ ...

  3. 【spring-boot神器】第一篇:拦截器,过滤器,监听器,控制器,消息转换器,AOP执行顺序

    整理一下这几天学习的资料和代码 第一部分.上代码 1.spring各种器的实现,idea搭建spring-boot的教程在这里http://www.jianshu.com/p/9082a533fa3c ...

  4. 关于Java并发编程的总结和思考

    编写优质的并发代码是一件难度极高的事情.Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更 ...

  5. 【Codeforces 1137B】Camp Schedule

    Codeforces 1137 B 题意:给两个串\(S\).\(T\),问将\(S\)中字符任意调换后出现\(T\)次数最多的方案. 思路:我们首先考虑怎么样放\(T\)才是最优的.我们直观上考虑前 ...

  6. saltstack学习之一:服务架构以及相关配置安装运行

    概要 saltstack是基于Python开发的C/S架构的一款批量管理工具,底层采用动态的连接总线(ZeroMQ消息队列pub/sub方式通信),使用ssl证书签发的方式进行认证管理,使其可以用于编 ...

  7. MIUI7 系统应用精简(米5、红米note3)

    1.由于安装的部分应用在root后无法使用,所以自己一直不能使用MIUI的开发版本. 2.前段时间米5升级MIUI8,实在是用着不咋地,耗电,王者还掉帧,于是降级miui7 3.被逼走上了刷机路. 1 ...

  8. Luogu P3768 简单的数学题

    非常恶心的一道数学题,推式子推到吐血. 光是\(\gcd\)求和我还是会的,但是多了个\(ij\)是什么鬼东西. \[\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j)=\sum_ ...

  9. 11.11 开课二个月零七天(ajax和bootstrp做弹窗)

    1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  10. Python 学习 第七篇:函数1(定义、调用和变量的作用域)

    函数是把一些语句集合在一起的程序结构,用于把复杂的流程细分成不同的组件,能够减少代码的冗余.代码的复用和修改代码的代价. 函数可以0个.1个或多个参数,向函数传递参数,可以控制函数的流程.函数还可以返 ...