我用FileReader,BufferedReader读取,用FileWriter,PrintWriter写到另一个文件。
但遇到一个3G的txt文件是会报java内存溢出的错误。
怎么解决呢?

解决方案 »

  1.   

    用nio类库创立内存映射就可以读很大的文件
      

  2.   

    错误提示是:Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space要分割的话怎么分割呢?
      

  3.   

    用什么读的? 试着把JVM的内存调大一点如果是Eclipse可以在快捷图标上添加启动参数 -Xms512m -Xmx512m 设置成512看看可以不
      

  4.   

    我试过java.nio,但是似乎最大只能读到2G的MappedByteBuffer inputBuffer =
         new FileInputStream(file).getChannel().map(FileChannel.MapMode.READ_ONLY, 0, fileLength);//读取大文件代码中fileLength 不能大于 Integer.MAX_VALUE,否则就会报错
      

  5.   

    问题已经解决,
    使用java.nio,并采用分段读取的方法。
    谢谢大家捧场!
      

  6.   

    您好 我最近也需要读一个3G 大小的文件,文件中一行一个记录 。否提供您解决了的分段读文件的代码给我参考下啊 谢谢啊!
    我邮箱是 [email protected] 谢谢了。!