黑马程序员技术交流社区

标题: OutputStreamWriter ,InputStreamReader的问题 [打印本页]

作者: 靖美专    时间: 2012-2-14 18:57
标题: OutputStreamWriter ,InputStreamReader的问题
Writer out
   = new BufferedWriter(new OutputStreamWriter(System.out));
OutputStreamWriter 是字符流通向字节流的桥梁...
控制台输出的不是字符吗????   OutputStreamWriter 怎么是字符转为字节???
   InputStream in =System.in;
         //将字节流对象转换为字符流对象,使用转换流InputStreamReader
        InputStreamReader  isr =new InputStreamReader (in);
键盘输入的是字符啊,,,怎么将字节流对象转换为字符流对象,使用转换流InputStreamReader????
求解啊
作者: 秦碧    时间: 2012-2-14 19:13
你如果输出abaef 这些确实是字符
可如果你输出3.15134 这按照字符处理就会比较麻烦吧
所以控制台输出的是字节流 个人理解。
输入也同理
作者: 黄秋    时间: 2012-2-14 19:33
查JAVA的API,System:
static InputStream in
          “标准”输入流。
static PrintStream out
          “标准”输出流。

System.out,System.in都是 Stream,字节流。屏幕输出、键盘输入时,涉及到系统、系统编码,就是说没这么简单,找资料看看吧。
作者: 成果    时间: 2012-2-14 20:31
•OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节流的输出对象  
•InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。  

作者: 李杨    时间: 2012-2-14 22:49
其实OutputStreamWriter和InputStreamReader主要为了字节流到字符流的相互转换,同时也可以按照指定的编码写出。

需要注意的是转换流你只能处理文字,字符流数据。要是图片数据或者影音数据就只是使用字节流。希望能对你有帮助。

加油!
作者: 石德志    时间: 2012-2-15 00:21
字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的 ,但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化 这两个之间通过 InputStreamReader,OutputStreamWriter来转换,实际上是通过byte[]和String来转换的。在实际开发中出现的中文的乱码问题其都是在字符流和字节流之间转化不统一而造成的。
作者: 靖美专    时间: 2012-2-20 17:06
寻找幸福的13狼 发表于 2012-2-14 20:31
•OutputStreamWriter:是Writer的子类,将输出的字符流转换为字节流。即:将一个字节流的输出对象变为字节 ...

OutputStreamWriter:将一个字节流的输出对象变为字节流的输出对象怎么理解  

作者: 王峰    时间: 2012-8-8 10:37
带Reader和Input的,都是输入流
带Writer和Output的,都是输出流
Reader与Writer都是字符型
Stream是字节型

同事有Stream和Reader或Writer的,是字符与字节的转换流。
自己写程序时候用的不多,但还是能用上。我觉得这个东西你在API里能得到很好的解释
带缓存的类前面都有Buffered这个单词。




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