这一行:
final FileOutputStream outputStream = new FileOutputStream(name);生成一个消息为/2ozjfFQzwv: open failed: EROFS (Read-only file system)的FileNotFoundException,其中"2ozjfFQzwv“是我作为文件名传递的内容。
无论有没有WRITE_INTERNAL_STORAGE权限,我都试过了。如何创建此文件以进行写入?
或者,我只希望能够为新的活动提供图像,但它太大了,无法在额外的活动中序列化它。有没有一种更简单的方法,比把它写到文件然后再从文件中读取更简单?这里的所有问题似乎都是关于写入SD卡的,这是我不想做的,因为许多人没有SD卡插槽。
发布于 2013-03-30 04:54:53
无论有没有WRITE_INTERNAL_STORAGE权限,我都试过了。
安卓没有WRITE_INTERNAL_STORAGE权限。
如何创建此文件以进行写入?
如果您的应用程序是以超级用户权限运行的,则不需要,除非您的应用程序是以超级用户权限运行的。您正在尝试写入应用程序无权访问的内部存储的根目录。
请使用接受File对象的FileOutputStream构造函数的版本。根据可以写入的某个位置创建File对象,例如:
getFilesDir() (在您的Context)getExternalFilesDir()或其他Context)上调用Activity或其他Activity
后者需要WRITE_EXTERNAL_STORAGE作为权限。
有没有一种比将其写入文件然后再次读取它更简单的方法?
您可以将其临时放在静态数据成员中。
,因为很多人没有SD卡插槽
“SD卡插槽”基本上是无关紧要的。99%的安卓设备用户都会有外部存储器--只有4+使用一年的设备例外,因为用户把他们的SD卡取出来了。自2010年年中开始生产的设备将外部存储作为板载闪存的一部分,而不是作为可移动介质。
发布于 2013-03-30 05:40:25
请尝试使用WRITE_EXTERNAL_STORAGE的权限,无论是否有外部卡都应使用该权限。
这对我来说很好用:
path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MOVIES);
File file = new File(path, "/" + fname);并将我的文件放在适当的文件夹中。
发布于 2013-03-30 04:58:30
下面是来自android developer的简单示例。
基本上,你可以像这样在内存中写一个文件:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();https://stackoverflow.com/questions/15711098
复制相似问题