我正在尝试从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;
}
答案 0 :(得分:2)
首先,您无法在/data
生产中存储文件,但getFilesDir()
返回给您的位置除外,因此您确实需要重新考虑您的方法。
其次,您没有尝试阅读/data
。您的代码从 /data
内的Environment.getExternalStorageDirectory()
目录中读取。 Environment.getExternalStorageDirectory()
的准确位置因设备和操作系统版本而异,但/mnt/sdcard
是最常见的位置。因此,您目前正在尝试阅读/mnt/sdcard/data
之类的内容,而不是/data
。
Here is the documentation关于Android中的数据存储。