“list.clear()”上的NullPointerException

时间:2010-12-06 03:45:34

标签: java android nullpointerexception

我正在做的是处理一个文本文档,我正在从保存的文本文档中提取数字,每行都有自己的编号,并且它会忽略以!开头的所有行,因此,在使用这些代码时,我得到一个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();
            }

2 个答案:

答案 0 :(得分:1)

如果没有堆栈跟踪指示NullPointerException出现的行号,我们只能猜测。查看发布的代码,我看不到integers在任何地方被初始化。因此integers.clear()可能会抛出NullPointerException。也许你错过了一句话:

integers = new ArrayList<Integer>();

Put是在调用integers.clear();之前执行的地方。

答案 1 :(得分:1)

在您当前的代码段中

整数

永远不会被初始化......