本章将简要的介绍 InputStreamReader 和 OutputStreamWriter。细心地读者可能会发现之前文章中 IO 的类要么以 Stream 结尾,要么以 Reader 或者 Writer 结尾,那这两个同是一字节流和字符流的类名后缀结尾的类是什么用途呢?简单地来说,这两个类把字节流转换成字符流,中间做得数据的转换,类似于适配器模式的思想。
InputStreamReader
InputStreamReader 会包含一个 InputStream,从而可以将该输入字节流转为成为字符流。
InputStream inputStream = new FileInputStream("c:\\data.txt");
Reader reader = new InputStreamReader(inputStream);
int data = reader.read();
while(data != -1){
char string = (char)data;
data = data.read();
}
reader.close()
read() 方法返回一个包含了读取到的字符内容的 int 类型变量。
int data = reader.read();
你可以把返回的 int 值转换成为 char 变量,就想下面这样:
char string = (char)data;
如果返回 -1,表明 Reader 中已经没有剩余可取的字符,此时可以关闭 Reader。-1 是一个 int 类型,不是 byte 或者 char 类型。
OutputStreamWriter
OutputStreamWriter 会包含一个 OutputStream,从而可以将输出的字节流转换成为字符流。
OutputStream outputStream = new FileOutputStream("C://datat.txt");
Writer writer = new OutputStreamWriter(outputStream);
writer.write("hello world");
write.close();
OutputStreamWriter 同样拥有输出字节流转换成为指定编码的字符流的构造函数。
本文介绍了如何使用InputStreamReader和OutputStreamWriter实现字节流与字符流之间的转换。通过具体的代码示例展示了如何读取文件内容,并将字节流转换为字符流进行处理,同时也演示了如何将字符流转换为字节流并写入文件。
1602

被折叠的 条评论
为什么被折叠?



