当我从文件中获取FileInputStream时,为什么需要添加文件夹?

时间:2016-06-02 05:54:53

标签: android

我已阅读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() );
            }

1 个答案:

答案 0 :(得分:1)

要使用FileStreams:

openFileInput(String name)

openFileOutput(String name, int mode)

一些细节:

openFileInput openFileOutputContext的方法。

在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”