2

嗨,我正在使用以下代码使用FileUtils.readLinesApache commons IO 库中的功能获取字符串列表中的所有行。这是我的代码,

List<String> lines=FileUtils.readLines(new File(fileName));

但是,每当我发送一个包含 100 万行的 45MB 文件时,它都会给我一个内存不足的错误。应该怎么解决。我需要处理每一行。

4

2 回答 2

10

一行一行地读

LineIterator it = FileUtils.lineIterator(file, "UTF-8");
 try {
   while (it.hasNext()) {
    String line = it.nextLine();
     // do something with line
   }
 } finally {
  it.close();
 } 
于 2013-09-10T12:53:22.857 回答
0

这是因为您正在运行 32 位而不是 64 位的环境,并且也没有使用 VM 参数,如下所示:

-d64 -Xmx6G

 IOUtils.toString((InputStream) new FileInputStream("C://exocerebro//userrecord.sql"), "UTF-8");
于 2018-07-20T07:54:10.463 回答