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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 樊永杰 黑马帝   /  2012-5-6 03:37  /  2698 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO转换流中,将字节流转到字符流,字符流中会查询编码表,更方便于操作,如果将字符流转到字节流会有什么用处么?还是说根本不存在这种转换方法呢?

3 个回复

正序浏览
本帖最后由 韩慧阳 于 2012-5-22 14:35 编辑

字节流转成字符流你应该没问题了吧。后面的内容对你不知道有没有帮助,只求多写点给点技术分,哈哈!
在所有的流操作里,字节永远是最基础的,任何基于字节的操作都是正确的。无论你是文本文件还是二进制的文件。 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么可以考虑用字符流。
由于编码不同,多字节的字符可能占用多个字节。比如GBK的汉字就占用2个字节,而UTF-8的汉字就占用3个字节。 所以,字符流是根据指定的编码,将1个或多个字节转化为java里面的unicode的字符,然后进行操作。
字符操作一般使用Writer,Reader等, 字节操作一般都是InputStream, OutputStream 以及各种包装类,比如BufferedInputStream和BufferedOutputStream等。
总结:如果你确认你要处理的流是可打印的字符,那么使用字符流会看上去简单一点。如果不确认,那么用字节流总是不会错的。 字节流顾名思意是处理2进制的
字符流处理的字符集
回复 使用道具 举报
我来谈一下我自己的观点,我们知道java的io流可以划分为字节流和字符流,字节流主要是操作视频、音乐等数据,而字符流主要是操作文本数据的,字节流转化为字符流是很常见的,主要是为了提高读入和写出的效率问题,而字符流转化为字节流主要是为了写入磁盘和文件传输,其实在磁盘的读取和写入或者文件在网络上的传输都是通过字节的方式进行的,字符只是在内存中才有的,所以还是字节流转化字符流很常见,要是将文件写入硬盘或者在网络上传输的时候可以讲字符流转化为字节流,方法就是楼上所说的那种。
回复 使用道具 举报
在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public   String(byte   bytes[],   String   charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[]                 String.getBytes(String   charsetName)
也是一样的道理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马