gpt4 book ai didi

java - 将行从 txt 存储到 ArrayList 时内存不足

转载 作者:太空狗 更新时间:2023-10-29 16:41:32 24 4
gpt4 key购买 nike

我真的不知道这有什么问题,我想逐行读取 txt 文件(目前只有 只有 10 行)并存储一些数组列表中的每一行称为 mChoices。

    @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.quiz_vieaaaw);
try {
InputStream inputStream = getApplicationContext().getAssets().open("questions.txt");
BufferedReader buffReader = new BufferedReader(new InputStreamReader(inputStream));
String line = buffReader.readLine();
while (line != null) {
mChoices.add(line);
}
inputStream.close();
}
catch (IOException e) {
e.printStackTrace();
}
for (int i=0; i < mChoices.size(); i++) {
String line = mChoices.get(i);
Log.d("LINE", line);
}
}

}

我在分配 13571696 字节时内存不足。

如果我在 while 条件下注释掉它只返回第一行,但显然我想要 txt 中的每一行。

谢谢

最佳答案

while (line != null) {
mChoices.add(line);
}

您需要每次都更新该行,否则您将始终读取第一行(在您的情况下它不是空的,因此您将无限次地写入第一行直到有可用内存)。
要在每次迭代时更新行,请执行:

String line;
while ((line = buffReader.readLine()) != null) {
mChoices.add(line);
}

关于java - 将行从 txt 存储到 ArrayList 时内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17027727/

24 4 0