黑马程序员技术交流社区

标题: 关于转换流。。 [打印本页]

作者: gzbbxu    时间: 2013-6-28 18:29
标题: 关于转换流。。
OutputStreamWriter,InputStreamReader我想问有什么好的理解方式吗?两个记起来感觉总是容易混淆.不知道该怎么学习。
作者: 王靖远    时间: 2013-6-28 18:36
转换流是字节流转换成字符流
Writer结尾的就是输出流
Reader结尾的就是写入流。
转换流主要作用是可以加编码表。按指定编码表读或者写。
作者: 万琪    时间: 2013-6-28 18:42
王靖远 发表于 2013-6-28 18:36
转换流是字节流转换成字符流
Writer结尾的就是输出流
Reader结尾的就是写入流。

靖远兄正解啊  
作者: gzbbxu    时间: 2013-6-28 19:08
王靖远 发表于 2013-6-28 18:36
转换流是字节流转换成字符流
Writer结尾的就是输出流
Reader结尾的就是写入流。

也有字符流转换成字节流的例子啊
作者: 王靖远    时间: 2013-6-28 19:15
gzbbxu 发表于 2013-6-28 19:08
也有字符流转换成字节流的例子啊

不太明白。流本身就是字节流啊。为什么要转成字节流?你直接获取的不就是字节流吗
作者: 王靖远    时间: 2013-6-28 19:17
下面是我百度来的。不知道有什么用。。。我没搞过字符流转字节流。

字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过   InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的

在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public   String(byte   bytes[],   String   charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[]                 String.getBytes(String   charsetName)
也是一样的道理 ,charsetName就是指编码格式

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nercon233/archive/2008/10/20/3110004.aspx

字节流和字符流的区别

字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输
由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。


作者: 影响力147753321    时间: 2013-6-29 01:35
它们都是为转换流,查api可它们在构造时包装了一个字节流对象。也就是它们是过滤流。不能直接和目的打交道,说是转换流,其实的都是字符转换流。java没有字节转换流如读入时inputstreamReader就是把字节编码成字符。然后封装成流对象存在内存中,而写出时就是按指定的编码以字节存到底层。这里转换流就有了一个重要作用。指定编码表。经常用到和字符编码有关操作时,因为它可以灵活指定编码表。




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