2012-04-05 10 views
-1

저는 지난 몇 시간 동안이 작업을 혼자서 해보려고 노력해 왔지만 다소 시간을 낭비하고 있습니다.New to Java. Context 및 openFileInput을 사용하여 파일에서 읽는 데 문제가 있습니다.

내가 원하는 것은 파일을 열고 읽은 다음 콘솔에 표시하는 것입니다. 그게 다야.

나는 이클립스를 사용하여 android 2.3.3을 개발하고 있습니다.

나는 여기에서 발견 한 코드와 다른 사이트에서 여러 가지 다른 방법을 사용해 보았습니다. 여기에 내가 지금 가지고있는 어떤 방법의 모든 전화 :

setContentView(new TestMap(this)); 

testMap 클래스 : 같은 클래스에서

TestMap(Context context){ 
     super(context); 
     // might need to be on the panel class 
     loadTileFile("worldonelayout.txt", context); 

:

private void loadTileFile (String filename, Context context){ 
     FileInputStream input = null; 
     InputStreamReader reader = null; 

     char[] inputBuffer = new char[256]; 
     String data = null; 

     try { 
      input = context.openFileInput("worldonelayout.txt"); 
      reader = new InputStreamReader(input); 
      reader.read(inputBuffer); 
      data = new String(inputBuffer); 
      System.out.println(data); 
      Toast.makeText(context, "Text read", Toast.LENGTH_SHORT).show(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
      Toast.makeText(context, "Text not read", Toast.LENGTH_SHORT).show(); 

     } finally { 
      try { 
       input.close(); 
       reader.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
에서 OnCreate 함수에서

이 코드는 작동하지 않습니다. 그것은 항상 예외를 때린다.

"/data/data/com.name.somethingiremoved/files/worldonelayout.txt (해당 파일 또는 디렉토리 없음)".

첫 번째 CATCH에서 발생합니다. BTW 내 파일은 루트 디렉토리에 있습니다 : Documents\Eclipse\workspace\project\worldonelayout.txt. 왼쪽의 브라우저에서 파일을 볼 수도 있습니다.

여기에서 보았던 사이트와 다른 사이트에서 Context 클래스가 Activity에서 파생 된 것과 관련이 있습니까? 내 활동과 동일한 수업에서이 코드를 사용하고 싶지 않습니다. 이 둘 사이에 방법이 있을까요?

나에게서 더 필요한 것이 있으면 알려 주시기 바랍니다.

+0

어떤 예외가 발생하고 있습니까? –

+0

@OllieC /data/data/com.name.somethingiremoved/files/worldonelayout.txt (해당 파일 또는 디렉토리 없음). 첫 번째 CATCH. BTW 내 파일은 루트 디렉토리 : Documents \ Eclipse \ workspace \ project \ worldonelayout.txt에 있습니다. 왼쪽의 브라우저에서도 파일을 볼 수 있습니다 – maffo

+0

안드로이드에서 system.out.println을 사용할 수 있습니까? 또한 logcat 오류를 표시하는 것이 좋습니다. – Stagleton

답변

1

열린 파일이 컴퓨터의 파일 시스템이 아니라 파일 시스템의 파일을 찾고 있습니다. 그것이 어디에서 찾을 수 있을지 정확히 알려줍니다 - /data/data/com.name.somethingiremoved/files/worldonelayout.txt 아래 전화로

+0

이것이 의미가 있습니다. 이 파일을 전화기에 추가하는 방법을 알고 있습니까? – maffo

+0

실제 휴대 전화 또는 에뮬레이터 탑재 http://stackoverflow.com/questions/2808632/manually-put-files-to-android-emulator-sd-card – HannahMitt