从文件系统中读取文件

时间:2011-11-20 18:16:37

标签: android

我正在尝试从Android中的/ data分区读取文件。我写了一个测试应用程序,然后在模拟器上启动它。然后我用“adb push local_path_to_file / data / mydir / file1”复制/ data / mydir /下的file1。

现在我在我的应用程序中尝试了以下内容,但没有任何反应:(

如何读取保存在/ data中的文件?我的代码出了什么问题?

以下是代码段:

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

1 个答案:

答案 0 :(得分:2)

首先,您无法在/data生产中存储文件,但getFilesDir()返回给您的位置除外,因此您确实需要重新考虑您的方法。

其次,您没有尝试阅读/data。您的代码从 /data内的Environment.getExternalStorageDirectory()目录中读取。 Environment.getExternalStorageDirectory()的准确位置因设备和操作系统版本而异,但/mnt/sdcard是最常见的位置。因此,您目前正在尝试阅读/mnt/sdcard/data之类的内容,而不是/data

Here is the documentation关于Android中的数据存储。