2012-03-01 104 views
1

試圖寫一個文件,我認爲一個byte []在應用後工作正常讀取/寫入字節數組的Android

String filename = "BF.dat"; 



    public void WriteByteToFile(byte[] mybytes, String filename){ 

    try { 

    FileOutputStream FOS = openFileOutput(filename, MODE_PRIVATE); 
    FOS.write(mybytes); 
    FOS.close(); 


    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

然後我需要讀取的字節回一個byte []

 String filename = "BF.dat" 

    public byte[] ReadByteFromFile (String filename){ 

    byte[] mybytes = null; 

    try { 
     File file = new File(filename);  
     FileInputStream FIS = new FileInputStream(file); 

     mybytes = new byte[(int)file.length()]; 

      FIS.read(mybytes); 
      FIS.close(); 



    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    return mybytes; 
} 

的字節沒有從該回來了,(它的工作原理在正常的Java - 但不是與Android APK),我不知道我需要什麼,使其在Android的工作。有很多寫文件字節的例子,但我找不到任何解釋如何讓它們回來的例子。

如果有什麼是模糊的請評論,我會解釋更多,如果需要。

+0

讀取文件是否傳遞給'ReadByteFromFile(...)'方法的'filename'完全限定? – Squonk 2012-03-01 01:50:55

+0

完全符合您的意思是相同的? String filename =「BF.dat」;兩者都是一樣的。 (我會添加到我的問題) – 2012-03-01 01:57:35

+0

請參閱dbryson的答案。你需要在你的案例中使用'openFileInput'。我完全合格的意思就是'/ data/data /.../.../ BF.dat'。如果你檢查你的logcat,你可能會得到一個'FileNotFoundException'記錄在你的代碼上面。 – Squonk 2012-03-01 01:59:59

回答

3

難道是你正在將文件寫入上下文的私有存儲,但不能從那裏讀回它?嘗試使用openFileInput(filename)

+0

好吧我會給它一個去,謝謝 – 2012-03-01 02:00:04