openFileOutput()方法与FileOutputStream()构造函数

4

在Android中,为什么应该使用openFileOutput()方法而不是FileOutputStream()构造函数?

第二个参数作为打开模式,这是唯一的“恰当”理由吗?

FileOutputStream fos;
fos = openFileOutput("test.txt", Context.MODE_PRIVATE);
fos = new FileOutputStream("test.txt");
2个回答

2

openFileOutput是特别用于将文件写入内部存储并禁止写入外部存储的函数。但是,FileOutputStream允许您同时向内部和外部存储器写入文件。根据我的经验,使用FileOutputStream在内部存储器中轻松创建目录。还可以在FileOutputStream的一个构造函数中使用第二个参数设置模式。 示例演示了如何使用FileOutputStream追加方式向内部存储器写入文件:

File filedir  = new File(MyApplication.getAppContext().getDir("DirectoryNameYouWant"));
File filename = new File("FilenameYouWant");
FileOutputStream fOut = new FileOutputStream(new File(filedir,filename),true);

0
openFileOutput()的第二个参数作为模式类型是所有情况下唯一“尊重”的原因吗?
另一个区别是,openFileOutputStream在设备的“内部”存储中打开/创建文件。相比之下,FileOutputStream允许使用内部和外部存储。
第三个区别是,openFileOutputStream在当前应用程序的上下文中写入文件,而FileOutputStream可以在任何上下文中写入...除了可能存在的权限问题。
(两个版本都可以以追加模式打开文件。这不是差异点。)
参考:

FileOutputStream的构造函数不能在内部存储中写入吗? - Hendra Anggrian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接