Java IO(十三):InputStreamReader 和 OutputStreamWriter

来源:互联网 发布:域名买了怎么用 编辑:程序博客网 时间:2024/05/15 23:44

本章将简要的介绍 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 同样拥有输出字节流转换成为指定编码的字符流的构造函数。

0 0
原创粉丝点击