文件大约1600w行,而且必须保证java的遍历速度与文件遍历的速度差不多(tips:如果使用String,gc执行垃圾清理对象的时间过长)

解决方案 »

  1.   

    怎么可能全部读入内存呢?Java 中的 IO 本身就是以流的形式设计的,你并不需要将其全部读取内存,你可以按一块一块字节读(二进制文件),或者一行一行地读(文本文件)。
      

  2.   

    使用字符流一行一行的读。读出来的肯定是String字符串,如果你需要读出的字符串连在一起,可以使用StringBuilder和StringBuffer类吗。
      

  3.   

    不要使用String类型,会生成很多对象导致虚拟机死掉。使用StringBuffer(多线程)或者StringBuilder(单线程)。也可以设置虚拟机内存大小。