00-1010补充:因为这篇文章是在前一篇的基础上继续的,我们将简要回顾前一篇,以便理解这一部分的内容。
1)输入输出(I/O)流分类:分为字节流和字符流;
(1) byte iostream:面向字节数组,其父类为InputStream和OutputStream。
详情请参考以下链接:
Java:基于代码战斗的字节流父类、文件流、缓冲流、对象流的详细说明
(2) Character iostream:面向字符数组或字符串,其父类为Reader和Writer。
详见下文详细说明。
2)通用iostream图谱:
00-1010 (1)字符流的父类:
1)简介:
Reader:是字符输入流的父类,可用于char数组或String类型内容,是抽象类,不能用自己的构造函数初始化;
Writer:是字符输出流的父类,可用于char数组或String类型的内容,是抽象类,不能用自己的构造函数初始化。
2)2)阅读器的常用方法:
Int read():读取一个字符,并返回Int值的低16位有效。
Int read(char[] chs):从流中读取字符串数组的长度字符并将其存储在数组中,返回值是实际读取的字符数。
3)编写器的常用方法:
Void write(int c):写一个字符,写给定int值的低16位所代表的字符。
Void write(char[] chs):写出给定字符数组中的所有字符。
空写(字符串):写出给定的字符串。
Voidwrite (char [] CHS,int offset,int len):从给定字符数组中的偏移量写出连续的len字符。
(2)字符转换流的输入和输出:
1)字符转换输入流:InputStreamReader
使用该流,您可以设置字符集,并将流中的字节数据转换为字符,并根据指定的字符集读取它们。的常用构造函数如下:
输入流阅读器(输入流,字符串字符集名)
基于给定的字节输入流和字符编码创建输入流读取器
输入流阅读器(输入流中)
该方法根据系统默认字符集构造一个InputStreamReader。
2)字符转换输出流OutputStreamWriter
使用这个流,您可以设置字符集,根据指定的字符集将字符转换成相应的字节,然后通过这个流将它们写出来。的常用构造函数如下:
输出流编写器(输出流输出,字符串字符集名称)
基于给定的字节输出流和字符编码创建输出流编写器
输出流写入器(输出流输出)
方法根据系统默认字符集创建输出流编写器。
(3)缓冲字符流:的输入和输出
1)缓冲字符输入流缓存器:
它内部提供了一个缓冲区,可以提高读取效率。常用的构造函数:
阅读器阅读器
补充:BufferedReader提供了一种可以轻松读取一行字符串的方法:
String readLine():此方法连续读取一行字符串,直到读取换行符,返回的字符串不包含换行符。
2)缓冲字符输出流缓冲写入器:
它在内部提供了一个缓冲区,可以提高内容写入的效率。常用的构造函数:
缓冲区写入器(写入器输出)
应用示例1(使用字符流逐行读取文件内容):
输入流阅读器与缓冲阅读器一起使用:
应用示例2(将指定内容写入文件):
OutputStreamWriter与BufferedWriter一起使用:
(4)过滤字符流:
1)引入过滤流PrintWriter:
PrintWriter是一个带有自动刷新缓冲区的字符输出流。提供了丰富的构造方法,如下所示:
打印编写器(文件文件)
打印编写器(字符串文件名)
打印编写器(输出流输出)
打印编写器(输出流输出,布尔自动刷新)
印刷作家
打印编写器(编写器编写器,布尔自动刷新)
其中,参数为OutputStream和Writer的构造函数提供了一个传出布尔值参数,用于指示PrintWriter是否有自动刷新。
2)过滤流打印机的常用方法:
Print(字符串)和println(字符串)方法:printWriter提供了丰富的重载打印和println方法。
println方法在输出目标数据后自动输出系统支持的换行。
如果流有自动刷新,那么println方法写出来的内容实际上会被写出来,而不是被缓存。
写入:将字符串写入文件。
3)PrintWriter代码示例: