2014-08-31 84 views
3

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

模式类型作为openFileOutput()的第二个参数是所有情况下唯一的“尊重”原因吗?

FileOutputStream fos; 
fos = openFileOutput("test.txt", Context.MODE_PRIVATE); 
fos = new FileOutputStream("test.txt"); 

回答

0

请问模式类型作为openFileOutput的第二参数()是唯一的“尊重”原因所有的情况?

另一个区别是openFileOutputStream在设备的“内部”存储中打开/创建一个文件。相比之下,FileOutputStream允许使用内部和外部存储。

第三个区别是,openFileOutputStream在当前应用程序的上下文中写入文件,而FileOutputStream可以在任何上下文中编写...模可能的权限问题。

(两个版本可以以附加模式打开的文件即不差的点。)

参考:

+0

不能Fi​​leOutputStream中的构造也写在内部存储:你如何写在追加方式使用FileOutputStream中内部存储 实例? – 2016-01-18 04:50:44

2

openFileOutput,具体用于用于将文件写入内部存储器并禁止写入外部存储器。 但是,FileOutputStream也允许您写入内部和外部存储器。根据我的经验,您可以在内部存储中使用FileOutputStream轻松创建一个目录。您还可以使用FileOutputStream将其设置为其constructor之一中的第二个参数。

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