【发布时间】:2018-10-12 10:12:32
【问题描述】:
我正在尝试从大文本文件中读取数据并将它们添加到数组列表中,但它给了我以下错误:-
线程“主”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);
}
【问题讨论】:
-
你可以试试用nio包阅读吗?
-
你有任何链接可以指导我如何在我的代码中使用 nio 包吗?
-
如果您知道给定文本文件中记录的 max 个很好的估计值,则可以将其作为构造函数参数传递给 ArrayList 构造函数。这将确保为它分配了足够的空间来容纳它们,这样它就不必进行过多的重新分配和多次移动。
-
@gparyani 我试过了,但没用,花了很多时间而且从未终止
标签: java