2012-03-01 101 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