2014-03-30 11 views
0

인터넷에서 .txt 파일을 다운로드하려고 시도하고 있습니다. 한 줄의 쿼리 파일을 다운로드, 읽기 및 실행하는 데 성공했습니다. 하지만 문제는 내가 파일에서 여러 줄 쿼리를 실행할 수 없습니다. 나는 약간 연구를하고 그들은 나의 필요에 적응하지 않았다 그래서 나는 해결책으로 생각해 냈다 그러나 나는 약간 과실을 파악한다. 제 아이디어는 .txt 파일을 한 줄씩 List로 변환 한 다음 List의 각 String에 대해 sqlite 내에서 쿼리를 실행하는 것입니다. 여기 내 코드의 일부입니다 :여러 줄 SQLite 쿼리 실행

public void updateDB(View v){ 

    new DownloadFileFromURL().execute(file_url); 

    File file = new File(Environment 
      .getExternalStorageDirectory().toString() 
      + "/update.txt") 

    Log.i("UPDATE", "SQL DOWNLOADED"); 

    while(start.equals(true)){ 

     List<String> list = readUpdate2("update.txt"); 
     for (String string : list) { 
      datasource.executeRaw(string); 
      Log.i("UPDATE", "EXEC SQL # : " + list.size()); 
     } 

    file.delete();}} 

public List<String> readUpdate2(String url){ 
    File sdcard = Environment.getExternalStorageDirectory(); 
    //Get the text file 
    List<String> list = null; 
     File file = new File(sdcard,url); 

     try { 

     BufferedReader br = new BufferedReader(new FileReader(file)); 
     String line; 

      while((line = br.readLine()) != null) { 
         // this is where the error happens : 
       list.add(line); 
       Log.i("UPDATE", "LINE : " + line); 
      } 
     } 
     catch (IOException e) { 
     } 
     return list; 
} 

문제가 내가이 Nullpointer 예외로 붙어있다. 그것은 라인이 비어 있다고 말합니다.

03-30 18:01:18.965: E/AndroidRuntime(12474): FATAL EXCEPTION: main 
03-30 18:01:18.965: E/AndroidRuntime(12474): java.lang.IllegalStateException: Could not execute method of the activity 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.view.View$1.onClick(View.java:3838) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.view.View.performClick(View.java:4475) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.view.View$PerformClick.run(View.java:18786) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.os.Handler.handleCallback(Handler.java:730) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.os.Handler.dispatchMessage(Handler.java:92) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.os.Looper.loop(Looper.java:137) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.app.ActivityThread.main(ActivityThread.java:5493) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at java.lang.reflect.Method.invokeNative(Native Method) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at java.lang.reflect.Method.invoke(Method.java:525) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at dalvik.system.NativeStart.main(Native Method) 
03-30 18:01:18.965: E/AndroidRuntime(12474): Caused by: java.lang.reflect.InvocationTargetException 
03-30 18:01:18.965: E/AndroidRuntime(12474): at java.lang.reflect.Method.invokeNative(Native Method) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at java.lang.reflect.Method.invoke(Method.java:525) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at android.view.View$1.onClick(View.java:3833) 
03-30 18:01:18.965: E/AndroidRuntime(12474): ... 11 more 
03-30 18:01:18.965: E/AndroidRuntime(12474): Caused by: java.lang.NullPointerException 
03-30 18:01:18.965: E/AndroidRuntime(12474): at com.meemarbashi.meemardictionary.UpdateActivity.readUpdate2(UpdateActivity.java:292) 
03-30 18:01:18.965: E/AndroidRuntime(12474): at com.meemarbashi.meemardictionary.UpdateActivity.updateDB(UpdateActivity.java:223) 
03-30 18:01:18.965: E/AndroidRuntime(12474): ... 14 more 

그래서 기본적으로 내가 .txt 파일로부터 텍스트를 얻기하지 오전 그럼 난 내 목록에 아무것도를 추가 할 수 없습니다 : 다음은 로그 캣입니다. 나는 어떻게해야합니까? 이것은 아마 널 포인터 예외의 이유를 미리

답변

0

에서

감사 :

List<String> list = null; 

널 대신

+1

"+1"덕분에 사람을 새로운 목록을 지정보십시오! 그것은 단순한 실수였습니다 : D – KababChi