Dre*_*rew 54 filesystems file-io android file android-file
这一行:
final FileOutputStream outputStream = new FileOutputStream(name);
Run Code Online (Sandbox Code Playgroud)
结果FileNotFoundException是消息是/2ozjfFQzwv: open failed: EROFS (Read-only file system)"2ozjfFQzwv"是我传递的文件名.
我在没有得到WRITE_INTERNAL_STORAGE许可的情况下尝试了这个.如何创建此文件进行编写?
或者,我只是希望能够为新活动提供图像,并且它太大而无法将其序列化.有没有比将其写入文件然后再次从中读取更简单的方法?这里的所有问题似乎都是关于写入SD卡,我不想这样做,因为很多人没有SD卡插槽.
Com*_*are 84
我在使用和不使用WRITE_INTERNAL_STORAGE权限的情况下尝试过此操作.
WRITE_INTERNAL_STORAGEAndroid中没有权限.
如何创建此文件进行编写?
如果您的应用程序以超级用户权限运行,则除了根设备之外,您不会这样做.您正在尝试写入内部存储的根目录,哪些应用程序无权访问.
请使用FileOutputStream带有File对象的构造函数的版本.File根据您可以写入的某个位置创建该对象,例如:
getFilesDir()(打电话给你Activity或其他人Context)getExternalFilesDir()(打电话给你Activity或其他人Context)后者需要WRITE_EXTERNAL_STORAGE作为许可.
有没有比将其写入文件然后再次从中读取更简单的方法?
您可以暂时将其放在静态数据成员中.
因为很多人没有SD卡插槽
总的来说,"SD卡插槽"无关紧要.99%的Android设备用户将拥有外部存储设备 - 例外情况将是用户移除SD卡的4年以上设备.自2010年中期开始生产的设备将外部存储作为板载闪存的一部分,而不是可移动介质.
Mar*_*tin 17
尝试使用WRITE_EXTERNAL_STORAGE的许可你应该使用它是否有外部卡.
这适合我:
path = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MOVIES);
File file = new File(path, "/" + fname);
Run Code Online (Sandbox Code Playgroud)
并将我的文件放在适当的文件夹中
小智 5
这是Android开发人员的简单示例.
基本上,您可以在内部存储中写入一个文件,如下所示:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud)
添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
在清单中使用和使用相同的马丁:
path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);
File file = new File(path, "/" + fname);
Run Code Online (Sandbox Code Playgroud)
有效.
| 归档时间: |
|
| 查看次数: |
100854 次 |
| 最近记录: |