从文本文件中读取200万条记录并将其添加到arraylist

时间:2018-10-12 10:12:33

标签: java

我正在尝试从大文本文件中读取数据并将其添加到Array列表中,但这会给我以下错误:-

  

线程“ main”中的异常java.lang.OutOfMemoryError:超出了GC开销限制。

我的代码:

List<Book> books= new ArrayList<>();
try {
    BufferedReader br = new BufferedReader(new FileReader(filePath));
    String fileRead = null;
    Book book = null;
    while((fileRead = br.readLine()) != null) {
        if(fileRead.startsWith("#index")) {
            book = new Book();
            book.index = fileRead.substring(6); 
            books.add(book);
        }

1 个答案:

答案 0 :(得分:0)

这是因为JVM的保留内存无法保留那么多的内存对象。根据您的RAM,您可能正在尝试执行不可能的操作。可用RAM的数量决定了您可以在内存中容纳多少Book对象。尝试添加内存限制并从命令行运行。

java -Xmx2000m -Xms2000m ....