我真的不知道这有什么问题,我想逐行读取txt文件(目前只有 ONLY 10 行)某些arraylist中的每一行称为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字节的分配上没有内存。
如果我在条件时注释掉它只返回第一行,但显然我想要txt中的每一行。
由于
答案 0 :(得分:5)
while (line != null) {
mChoices.add(line);
}
每次都需要更新一行,否则你将始终读取第一行(在你的情况下不是空的,所以你要写第一行的无限次,直到有可用的内存)。
要在每次迭代时更新线,请执行:
String line;
while ((line = buffReader.readLine()) != null) {
mChoices.add(line);
}