首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java IO学习笔记总结

文章目录

  1. 1. Java IO学习笔记总结
    1. 1.1. 前言
    2. 1.2. 后续
      1. 1.2.1. 字节流
        1. 1.2.1.1. InputStream
        2. 1.2.1.2. OutPutStream
      2. 1.2.2. 字符流
        1. 1.2.2.1. Writer
        2. 1.2.2.2. Reader
    3. 1.3. 最好用的
      1. 1.3.1. 输出流最好用的
      2. 1.3.2. 输入流最好用的
      3. 1.3.3. 综合运用

Java IO学习笔记总结

前言

前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下

后续

字节流

字节流的操作都是基于InputStreamOutputStream这两个抽象类

InputStream

InputStream字节输入流,主要的功能是从文件中读取数据,它的子类有内存操作流 ByteArrayInputStream,管道输入流PipedInputStream,和FileInputStream

OutPutStream

OutputStream是字节输出流,主要功能是向文件中写入数据,它的常用的子类有ByteArrayOutputStream, FileOutputStream, PipedOutputStream,PrintStream

字符流

字符流的操作都是基于家WriterReader这两个抽象类的,一个是输出流,一个是输入流

Writer

写入字符流的操作类,常用的子类有PrintWriter,BufferedWriter,OutputStreamWriter(字节流和字符流之间的桥梁)

Reader

用于读取字符流的抽象类,常用的子类有BufferedReaderInputStreamReader

最好用的

  • 其中最高效的输入和输出当然是字符流操作的BufferedReaderBufferedWriter
  • 最便捷的,格式化最好的当然是PrintStream,PrintWriter这两个类都采用了格式化的输入和输出

输出流最好用的

  • 输出流中比较好用的是PrintStream,PrintWriter
  • 输出流最好用的当然是BufferedWriterPrintWriter的结合,例子如下;
代码语言:javascript
复制
File file=new File("/tmp"+File.separator+"test"+File.separator+"test.txt");
//用BufferedWriter实例化PrintWriter,显著提高写入的效率
PrintWriter printWriter=new PrintWriter(new BufferedWriter(new FileWriter(file)));
String name="陈加兵";
int age=22;
float grade=99.9f;
printWriter.printf("姓名:%s,年龄:%s,grade:%s",name,age,grade);  //格式化的写入
printWriter.close();

输入流最好用的

  • 本人觉得输入流中BufferedReader功能已经很强大了

综合运用

有时候在写程序的时候,你得到了一个字节流,但是你想要创建的却是字符流对象,怎么办了呢?前面已经说过,字节流转换成字符流对象的桥梁是InputStreamReader和InputStreamWiter他们的作用是传入字节流对象构造字符流对象,因此可以完美的实现字节流转换成字符流,这个是非常重要的

代码语言:javascript
复制
 // 读取键盘的输入的数据,System.in是字节流,因此要想创建高效流必须使用转换流InputStreamReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
//从键盘读取输入的数据,直到读到bye结束
while ((line = br.readLine()) != null) {
	if ("bye".equals(line)) {
		break;
	}
	System.out.println(line);
}
举报
领券