java.io包-字符流

字符流的基本类和缓存流,字符流的其它类。
一、字符流基类
java.io 包中专门用于字符流处理的类,是以 Reader 和 Writer 为基础派生的一系列类。

字符流以字符为单位,根据码表映射字符,一次可能读多个字节,只能处理字符类型的数据。

Reader 和 Writer 也是抽象类,只提供了一系列用于字符流处理的接口。其方法与类InputStream和OutputStream类似,只不过其中的参数换成了字符或字符数组。

Reader 是所有输入字符流的父类。
Writer 是所有的输出字符流的父类。
InputStreamReader 和 OutputStreamWriter 是 java.io 包中用于处理字符流的最基本的类,用来在字节流和字符流之间作为中介:从字节输入流读入字节,并按编码规范转换为字符;往字节输出流写字符时先将字符按编码规范转换为字节。使用这两者进行字符处理时,在构造方法中应指定一定的平台规范,以便把以字节方式表示的流转换为特定平台上的字符表示。

InputStreamReader(InputStream in); //缺省规范说明
//指定规范 enc
InputStreamReader(InputStream in, String enc);
OutputStreamWriter(OutputStream out); //缺省规范说明
//指定规范 enc
OutputStreamWriter(OutputStream out, String enc);

如果读取的字符流不是来自本地时(比如网上某处与本地编码方式不同的机器),那么在构造字符输入流时就不能简单地使用缺省编码规范,而应该指定一种统一的编码规范“ISO 8859_1”,这是一种映射到 ASCCII 码的编码方式,能够在不同平台之间正确转换字符。
InputStreamReader it = new InputStreamReader(is, “8859_1”);

二、缓存流
同样的,为了提高字符流处理的效率,java.io 中也提供了缓冲流 BufferedReader 和 BufferedWriter。其构造方法与 BufferedInputStream 和 BufferedOutPutStream 相类似。另外,除了 read() 和 write() 方法外,它还提供了整行字符处理方法:

public String readLine():BufferedReader 的方法,从输入流中读取一行字符,行结束标志\n、\r或者两者一起(这是根据系统而定的)
public void newLine():BufferedWriter 的方法,向输出流中写入一个行结束标志,它不是简单地换行符\n或\r,而是系统定义的行隔离标志(line separator)。

三、其他字符流类
1.对字符数组进行处理: CharArrayReader、CharArrayWriter
2.对文本文件进行处理:FileReader、FileWriter
3.对字符串进行处理:StringReader、StringWriter
4.过滤字符流:FilterReader、FileterWriter
5.管道字符流:PipedReader、PipedWriter
6.行处理字符流:LineNumberReader
7.打印字符流:PrintWriter

类有千万,方法更是不计其数,所以没有必要去掌握所有的方法和类,只需要知道常见常用的就行了,而大多数的类和方法,希望有一个印象,当我们在实际开发的时候,能够想到,并且借助其他工具去查询我们需要的方法的应用方式就可以了。

发布了28 篇原创文章 · 获赞 3 · 访问量 928

猜你喜欢

转载自blog.csdn.net/weixin_43273005/article/details/102750524
今日推荐