我已阅读https://developer.android.com/guide/topics/data/data-storage.html#filesInternal
上的文章代码A运行良好,但代码B运行不正常,我必须使用代码inputStream = new FileInputStream(mContext.getFilesDir()+"/hello_file");
当我读取存储在内部存储器中的文件时,我必须添加文件夹吗?
代码A
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
代码B
InputStream inputStream = null;
int size = 0;
try {
inputStream = new FileInputStream("hello_file");
size=inputStream.available();
Utility.LogError("Size Html: "+size );
}catch (Exception e){
Utility.LogError("Error: Input"+e.getMessage() );
}
答案 0 :(得分:1)
要使用FileStreams:
openFileOutput(String name, int mode)
一些细节:
openFileInput
openFileOutput
是Context
的方法。
在Code a中,您正在使用openFileOutput
。如果您查看a src。
您可以看到openFileOutput
执行以下操作:
...
File f = makeFilename(getFilesDir(), name);
...
FileOutputStream fos = new FileOutputStream(f, append);
...
因此,用于生成输出流的路径与您提供的路径相同:
mContext.getFilesDir()+"/hello_file"
错误简短:
代码A:将写入:+“/ hello_file”
代码B:尝试阅读:“/ hello_file”