我正在做的是处理一个文本文档,我正在从保存的文本文档中提取数字,每行都有自己的编号,并且它会忽略以!开头的所有行,因此,在使用这些代码时,我得到一个NullPointerException并且我不确定为什么,因为这个没有填充ArrayList,为什么会这样?
try{
File f = new File(extStorageDirectory+"/data.txt");
FileInputStream fileIS = new FileInputStream(f);
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
String readString = new String();
integers.clear();
char check;
while((readString = buf.readLine())!= null){
check = readString.charAt(0);
if(check == '!'){
}
else{
//integers.add(0,Integer.parseInt(readString));
if(check == 0){
integers.add(0);
} else {
if(check == 1) {
integers.add(1);
} else {
if(check == 2){
integers.add(2);
}
}
}
}
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(),"Find Data: "+e.toString(),Toast.LENGTH_LONG).show();
}
答案 0 :(得分:1)
如果没有堆栈跟踪指示NullPointerException
出现的行号,我们只能猜测。查看发布的代码,我看不到integers
在任何地方被初始化。因此integers.clear()
可能会抛出NullPointerException
。也许你错过了一句话:
integers = new ArrayList<Integer>();
Put是在调用integers.clear();
之前执行的地方。
答案 1 :(得分:1)
在您当前的代码段中
整数
永远不会被初始化......