如何在Android内部存储上创建文件?

Bud*_*ril 26 storage android file internal

我想将内部存储上的文件保存到特定文件夹中.我的代码是:

File mediaDir = new File("media");
if (!mediaDir.exists()){
   mediaDir.createNewFile();
   mediaDir.mkdir();

}
File f = new File(getLocalPath());
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
fos.write(data);
fos.close();
Run Code Online (Sandbox Code Playgroud)

getLocalPath返回,/data/data/myPackage/files/media/qmhUZU.jpg但是当我想创建媒体文件夹时,我得到异常"java.io.IOException:只读文件系统".有任何想法如何在文件夹媒体中的内部手机存储上写我的文件?谢谢.

Aud*_*ius 23

您应该像这样使用ContextWrapper:

ContextWrapper cw = new ContextWrapper(context);
File directory = cw.getDir("media", Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

与往常一样,请参阅文档,ContextWrapper可提供很多功能.


Luc*_* S. 2

您应该创建media附加到getLocalPath()返回内容的目录。

  • 不,这是一个解决方案 - 您必须先创建文件夹,然后才能在其中写入文件。 (4认同)