A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡奎 中级黑马   /  2012-5-5 11:49  /  2694 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO中字节流和字符流有何区别啊?字符流的出现仅仅是为了方便操作汉字吗?

5 个回复

倒序浏览
1  Java 2 定义了两种类型的流:字节流和字符流。字节流(byte stream)为处理字节的输入和输出提供了方便的方法。例如使用字节流读取或写入二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。它们采用了统一的编码标准,因而可以国际化。当然,在某些场合,字符流比字节流更有效。 在最底层,所有的输入/输出都是字节形式的。基于字符的流只为处理字符提供方便有效的方法
2  字节流类(Byte Streams) 字节流类用于向字节流读写8位二进制的字节。一般地字节流类主要用于读写诸如图象或声音等的二进制数据。
3  字符流类(Character Streams) 字符流类用于向字符流读写16位二进制字符。
回复 使用道具 举报
简单一点儿,字符流是为了简化纯文本文件的操作。字节流可以用于任何操作,尤其是涉及图片,声音,视频等常见操作。当然沙发的要专业一些。
回复 使用道具 举报
字符流的出現是爲了簡化對於文本文件操作
針對字符寫入和讀取,向你舉例說明兩者之間的區別:
字符:二个字節
字節:一个字節
例:讀取一個漢字"你",它寫入內容后,在內存中占兩個字節,也就是一個字符
    字符流讀取:每次讀取兩個字節,只需一次就可完成讀取,然後可以將其進行存儲
    字節流讀取:每次讀取一個字節,需要兩次才可完成讀取,每次讀取這個漢子的一半(似乎描述得不太恰當,應該是兩個字節的一半,也就是一個字節)
無論是字符文件還是其他文件,在計算機內部全都是以字節形式讀取和寫入,所以你完全可以不使用字符流
但出於對高效的考慮,在使用字符流與字節流前需進行分析,然後選擇最優的方式進行代碼的編寫
回复 使用道具 举报
JavaI/O字节流与字符流就是java 实现输入/输出 数据字节流是一个字节一个字节的输入/输出 数据 (两个字节组成一个汉字)所以在用字节流读一串汉字时会出现乱码问题,
同样字符流是一个字符一个字符流(一个字符=两个字节)的输入/输出 数据 用字符流读一串汉字可以解决乱码问题.用毕老师的话说就是——哦了!
回复 使用道具 举报
字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马