2011-11-20 193 views
0

我正嘗試從Android中的/ data分區讀取文件。我編寫了一個測試應用程序,然後在模擬器上啓動它。然後,我使用「adb push local_path_to_file/data/mydir/file1」複製/ data/mydir /下的file1。從文件系統中讀取文件

現在我想在我的應用程序下面並沒有任何反應:(

如何讀取保存在/數據的文件有什麼錯我的代碼

以下是代碼片段:??

  try { 

      File source = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/data/pu/file1");  
      InputStream is = new FileInputStream(source); 
      String fileStr = new String(ReadBytesOfFile(is).toString); 
      System.out.println("file out ="+ fileStr); 
      is.close(); 
      } 
      catch(IOException e){ 
       Log.d("file","NOT FOUND"); 
      } 


     public byte [] ReadBytesOfFile (InputStream input) throws IOException { 
      long length = input.available(); 
      byte[] rbuffer = new byte[(int) length]; 
      input.read(rbuffer); 
      return rbuffer; 
     } 
+0

我也試過了:Environment.getExternalStorageDirectory()+「/ data/pu/file1」 – user489152

回答

2

首先,你不能在/data將文件存儲在生產,除了在位置由getFilesDir()返還給您,讓您真正需要重新考慮你的方法。

其次,你不是試圖從/data讀取。您的代碼從/data目錄中讀取Environment.getExternalStorageDirectory()Environment.getExternalStorageDirectory()的確切位置因設備和操作系統版本而異,但/mnt/sdcard是最常見的點。因此,您目前正試圖從/mnt/sdcard/data而不是/data之類的東西中讀取。

Here is the documentation關於Android中的數據存儲。

+0

感謝CommonWare。只是另一個問題,SD卡目錄似乎被安裝爲只讀。那麼如何將我的文件推送/複製到這個分區然後從中讀取?我真的以爲我正在讀SD卡! – user489152

+0

@ user489152:您的模擬器可能沒有模擬的SD卡。您需要使用AVD管理器定義一個。如果你不知道「內部」與目錄有什麼關係,我幾乎無法幫助你。 – CommonsWare

+0

謝謝。它工作,當我將我的文件移動到/ sdcard/data目錄。 – user489152

相關問題