我正在尝试从大文本文件中读取数据并将其添加到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);
}
答案 0 :(得分:0)
这是因为JVM的保留内存无法保留那么多的内存对象。根据您的RAM,您可能正在尝试执行不可能的操作。可用RAM的数量决定了您可以在内存中容纳多少Book对象。尝试添加内存限制并从命令行运行。
java -Xmx2000m -Xms2000m ....