解决方案 »

  1.   

    首先要知道在磁盘上文本数据是以字节的方式存放的(‘0’ 和 ‘1’ 的序列)。字节流是以字节为单位将数据从磁盘上读入内存的,因此数据在内存中依然是字节的方式存在(‘0’ 和 ‘1’ 的序列或者byte序列),所以在这个过程中不存在乱码问题。而如果要操作文本数据,必须把字节流的数据转换为字符流数据,如果有乱码问题出现就在字节转为字符的时候。
    下面我分析一下为什么会出现乱码问题。
    我们知道磁盘上的文本数据(字节流)一定符合某种编码格式(例如GB2312),通过字节流读入内存后数据没有改变依然是这种格式(GB2312)。在将字节流转化为字符流的时候如果没有按照文本数据在磁盘上本身的格式(GB2312)解码,就会出现乱码问题。你把乱码产生的原因搞清楚了,在遇到乱码问题就不用怕了。
    解决办法:
    使用转换流,如InputStreamReader(将字节数据转为字符数据),第二个参数可以指定转换所使用的编码格式。
    OutputStreamWriter用法类似。
    纯手写,谢谢!
      

  2.   

    文本数据过大的时候可能得考虑执行速度等性能问题,以及处理这些数据时需要使用的内存、buffer等问题