gpt4 book ai didi

java - OutofMemory 链表添加错误

转载 作者:行者123 更新时间:2023-11-29 09:50:40 25 4
gpt4 key购买 nike

我正在尝试从一个 txt 文件(书籍)中读取,然后将它的每一行添加到一个链表中。但是,当我运行代码时,我在 l.add(line); 处遇到内存不足错误。你能告诉我这段代码做错了什么吗?或者,是否有更好的方法来存储 String 值而不是 LinkedList?

非常感谢!

public Book (String bookname) throws java.io.IOException{
f = new FileReader(bookname);
b = new BufferedReader(f);
l = new LinkedList<String>();
String line = b.readLine();
while (line != null) {
l.add(line);
}
b.close();
}

最佳答案

正如其他人所指出的,您已经创建了一个无限的、消耗内存的循环。从 BufferedReader 读取的一个常见习惯用法是:

String line;
while ( ( line = b.readLine() ) != null) {
l.add(line);
}

我想这本书的内容可能太大,无法一次全部装入内存。您可以使用 Xmx 参数增加 JVM 可用的内存,即:

java -Xmx1G MyClass

此值的默认值为 64 Mb,现在已经不多了。

关于java - OutofMemory 链表添加错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com