黑马程序员技术交流社区

标题: 转换流疑问 [打印本页]

作者: 杨增坤    时间: 2013-10-3 21:05
标题: 转换流疑问
本帖最后由 杨增坤 于 2013-10-4 08:54 编辑

字节流:InputStream    -------读取
字符流:Reader      ------读取
把字节流转换成字符流,就可以利用字符流读取键盘录入的数据,就可以方便的使用读取行的方法,
BufferedWriter bw = new BufferedWriter(newOutputStreamWriter(System.out));

字符流:Writer   -----写入流
字节流:OutputStream  ---写入流

OutputStreamWriter 是字符流通向字节流的桥梁,难道这个是将字符流转换成字节流了呢??还是只是说是将字节输出流转换成了字符输出流??还是他们在底层调用的编码方式不一样呢??
作用就是当要指定编码方式的时候用。


作者: 陈钦涛    时间: 2013-10-3 22:04
本帖最后由 陈钦涛 于 2013-10-3 22:11 编辑

转换流是将字节流转换成字符流的工具,Java没有字符流转换成字节流这一说的,OutputStreamWriter的构造方法中接收的是OutputStream字节输出流,但是为什么说它是字符流通向字节流的桥梁呢,流的流动我大概描叙成这样的步骤(以从硬盘上读取文本文件显示在控制台上来举例):文本文件——》字符读取流(1)——》读取到字符缓冲区(2)——》通过OutputStream转换流转换(3)——》字节写入流(4)——》写入到控制台(5)。有木有,步骤(3)也就是转换流在步骤(2)和(4)之间中转的作用,是不是像字符流通往字节流的一座桥梁呢。而且还可以指定编码表。
当然读取硬盘文件到控制台只用字节流也可以,这里只是为了举个例子。InputStreamReader的道理也一样。
作者: 杨增坤    时间: 2013-10-3 22:17
陈钦涛 发表于 2013-10-3 22:04
转换流是将字节流转换成字符流的工具,Java没有字符流转换成字节流这一说的,OutputStreamWriter的构造方法 ...

谢谢,我明白点了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2