2014-07-01 2 views
2

.txt 파일에서 데이터를 읽는 데 문제가 있습니다. 응용 프로그램을 실행할 때 오류 메시지가 나타나고 응용 프로그램이 다운되면 텍스트 파일을 읽거나 InputStream에서 스캐너로 변환하는 것으로 간주됩니다. 나는 다음과 같은 코드가 있습니다 : InputStream 및 스캐너를 사용하여 .txt 파일에서 데이터 읽기 android


FileExaminer a = new FileExaminer(); 
FileExaminer b = new FileExaminer(); 
FileExaminer c = new FileExaminer(); 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     try{ 
      readFile.runMethods(); 
     } catch (Exception e) { 
      System.out.println("Error in Main"); 
     } 
    } 

public InputStream input; 
public Scanner file; 
AssetManager assetManager = getAssets(); 

public String a, b, c; 
public void runMethods() { 
    openFile(); 
    readFile(); 
    closeFile(); 
} 

public void openFile() { 
    try{ 
     input = getAssets().open("numbers.txt"); 
     file = new Scanner(input); 
    } catch(Exception e) { 
     System.out.println("error"); 
     } 
    } 

public void readFile() { 
    while (file.hasNext()) { 
     a = file.next(); 
     b = file.next(); 
     c = file.next(); 

     System.out.printf("%s %s %s/n", a,b,c); 
    } 
} 

public void closeFile() { 
    file.close(); 
} 
내 오류 로그가 이것이다 : 사전에

07-01 02:10:05.113: D/AndroidRuntime(2174): Shutting down VM 
07-01 02:10:05.173: W/dalvikvm(2174): threadid=1: thread exiting with uncaught exception (group=0xb1cf6b20) 
07-01 02:10:05.213: E/AndroidRuntime(2174): FATAL EXCEPTION: main 
07-01 02:10:05.213: E/AndroidRuntime(2174): Process: com.aghgb.pokedex, PID: 2174 
07-01 02:10:05.213: E/AndroidRuntime(2174): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.aghgb.pokedex/com.aghgb.pokedex.Main}: java.lang.NullPointerException 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.os.Handler.dispatchMessage(Handler.java:102) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.os.Looper.loop(Looper.java:136) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at java.lang.reflect.Method.invoke(Method.java:515) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at dalvik.system.NativeStart.main(Native Method) 
07-01 02:10:05.213: E/AndroidRuntime(2174): Caused by: java.lang.NullPointerException 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.content.ContextWrapper.getAssets(ContextWrapper.java:83) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at com.aghgb.pokedex.FileExaminer.<init>(FileExaminer.java:13) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at com.aghgb.pokedex.Main.<init>(Main.java:7) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at java.lang.Class.newInstanceImpl(Native Method) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at java.lang.Class.newInstance(Class.java:1208) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112) 
07-01 02:10:05.213: E/AndroidRuntime(2174):  ... 11 more 

감사합니다. 이 방법을 사용할 수있는 .txt 인 파일을 읽기 위해

+0

FileExaminer의 13 행은 무엇입니까? –

답변

0

: txtFileRead()에서

try { 
    txtFileRead("filename.txt"); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 


public List<String> txtFileRead(String filename) throws IOException { 
    List<String> readData = new ArrayList<String>(); 
    AssetManager assets = context.getAssets(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(assets.open(filename))); 
    while(true) { 
     String line = reader.readLine(); 
     if(line == null) { 
      break; 
     } 
     lines.add(line); 
    } 
    return lines; 
} 

내가 텍스트 파일을 읽고 나열 읽기 데이터를 추가하고있다. 연구와 시행 착오를 몇 시간 이상 후

1

나는이 함께했다 :

이 코드는 컬럼에 저장된 텍스트 파일을 인쇄 할 때 사용하고 파일만큼 작동합니다
try { 
     file = new Scanner(getResources().openRawResource(R.raw.pokemon_data)); 
     System.out.println("File Scanned"); 
     // do reading, usually loop until end of file reading 
     while (file.hasNext()) { 
      a = file.next(); 
      b = file.next(); 
      c = file.next(); 
      System.out.printf("%s %s %s\n", a, b, c); 
     } 
    } catch (Exception e) { 
     System.out.println("Error opening/reading file"); 
    } finally { 
     if (file != null) { 
      file.close(); 
     } 
    } 

원시 폴더에 있습니다. while 루프에서 변수를 추가하면 표시되는 열의 수가 증가합니다.

+0

'NullPointerException'의 원인은 무엇입니까? –

관련 문제