关于字节流操作文本数据的问题 编码,字节流,文本数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先要知道在磁盘上文本数据是以字节的方式存放的(‘0’ 和 ‘1’ 的序列)。字节流是以字节为单位将数据从磁盘上读入内存的,因此数据在内存中依然是字节的方式存在(‘0’ 和 ‘1’ 的序列或者byte序列),所以在这个过程中不存在乱码问题。而如果要操作文本数据,必须把字节流的数据转换为字符流数据,如果有乱码问题出现就在字节转为字符的时候。下面我分析一下为什么会出现乱码问题。我们知道磁盘上的文本数据(字节流)一定符合某种编码格式(例如GB2312),通过字节流读入内存后数据没有改变依然是这种格式(GB2312)。在将字节流转化为字符流的时候如果没有按照文本数据在磁盘上本身的格式(GB2312)解码,就会出现乱码问题。你把乱码产生的原因搞清楚了,在遇到乱码问题就不用怕了。解决办法:使用转换流,如InputStreamReader(将字节数据转为字符数据),第二个参数可以指定转换所使用的编码格式。OutputStreamWriter用法类似。纯手写,谢谢! 文本数据过大的时候可能得考虑执行速度等性能问题,以及处理这些数据时需要使用的内存、buffer等问题 这个题,错在哪了? getRealpath()方法求解 BufferedInputStream中的skip性能如何? 编译出错,提示“使用或覆盖了已过时的API”(Properties) 请教:NetBeans中在自定义窗体中add控件的问题 谁能给你个org.gjt.mm.mysql.Driver的下载地址 求检查一个时间段时是否包含星期六日的方法 对象序列化(Object Serializable)的困局 做文字动画的时候,如何让图像不残留阿?急!急! 請分析NullPointerException的產生原因?(付程序) 编译时的路径问题 GC日志
下面我分析一下为什么会出现乱码问题。
我们知道磁盘上的文本数据(字节流)一定符合某种编码格式(例如GB2312),通过字节流读入内存后数据没有改变依然是这种格式(GB2312)。在将字节流转化为字符流的时候如果没有按照文本数据在磁盘上本身的格式(GB2312)解码,就会出现乱码问题。你把乱码产生的原因搞清楚了,在遇到乱码问题就不用怕了。
解决办法:
使用转换流,如InputStreamReader(将字节数据转为字符数据),第二个参数可以指定转换所使用的编码格式。
OutputStreamWriter用法类似。
纯手写,谢谢!