2012-04-05 24 views
-1

過去幾個小時我一直試圖自己做這件事,而且有點失落。Java新手。使用上下文和openFileInput從文件中讀取問題

我想要做的就是打開一個文件,讀取並顯示它到控制檯;而已。

我使用eclipse爲android 2.3.3進行開發。

我已經嘗試了使用一堆不同的方法,我在這裏找到的代碼和其他網站上。以下是我現在有怎樣的全稱爲:

在OnCreate函數:

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(); 
      } 
     } 
    } 

此代碼不起作用。它總是遇到異常。

「/data/data/com.name.somethingiremoved/files/worldonelayout.txt(沒有這樣的文件或目錄)」。

這發生在第一個CATCH。 BTW我的文件在根目錄:Documents\Eclipse\workspace\project\worldonelayout.txt。我還可以在左側的瀏覽器中看到該文件

從我在這裏和其他網站上看到的情況來看,這與從Activity派生的Context類有關嗎?我不想將這些代碼放在與我的活動相同的類中。有沒有辦法解決這個問題?

如果您需要更多內容,請告訴我。

+0

拋出了什麼異常? – 2012-04-05 18:41:53

+0

@OllieC /data/data/com.name.somethingiremoved/files/worldonelayout.txt(沒有這樣的文件或目錄)。第一個CATCH。 BTW我的文件在根目錄下:Documents \ Eclipse \ workspace \ project \ worldonelayout.txt。我也可以在左側的瀏覽器中看到該文件 – maffo 2012-04-05 18:45:39

+0

你可以在android中使用system.out.println嗎?顯示你的logcat錯誤也是一個好主意 – Stagleton 2012-04-05 18:52:17

回答

1

打開的文件正在手機的文件系統上查找文件,而不是在計算機上查找。它告訴你它到底在哪裏找到它 - 在/data/data/com.name.somethingiremoved/files/worldonelayout.txt電話上

+0

這確實有用。你知道我如何將這個文件添加到手機。 – maffo 2012-04-05 19:07:36

+0

安裝一個實際的手機或模擬器http://stackoverflow.com/questions/2808632/manually-put-files-to-android-emulator-sd-card – HannahMitt 2012-04-06 18:39:45