android开发分享尝试在Android中创build文件:打开失败:EROFS(只读文件系统)

这一行:

final FileOutputStream outputStream = new FileOutputStream(name); 

导致FileNotFoundException ,消息是/2ozjfFQzwv: open failed: EROFS (Read-only file system)其中“2ozjfFQzwv”是我作为文件的名称传递的。

我已经试过这个和没有WRITE_INTERNAL_STORAGE权限。 我如何创build这个文件的写作?

另外,我只是希望能够给一个新的活动提供一个图像,而且它太大而无法在一个额外的序列化中。 有没有比写入文件,然后再读取一个更简单的方法? 这里的所有问题似乎都是关于写入SD卡,我不想这样做,因为很多人没有SD卡插槽。

    我已经试过这个和没有WRITE_INTERNAL_STORAGE权限。

    Android中没有WRITE_INTERNAL_STORAGE权限。

    我如何创build这个文件的写作?

    如果您的应用程序以超级用户权限运行,您可能不会(除了在根设备上)。 您正试图写入内部存储的根目录,哪些应用程序无权访问。

    请使用带File对象的FileOutputStream构造函数的版本。 根据您可以写入的某个位置创build该File对象,例如:

    后者将需要WRITE_EXTERNAL_STORAGE作为权限。

    有没有比写入文件,然后再读取一个更简单的方法?

    你可以暂时把它放在一个静态数据成员中。

    因为很多人没有SD卡插槽

    “SD卡插槽”是无关紧要的,大体上。 99%的Android设备用户将拥有外部存储空间 – 例外的是4年前的用户移除SD卡的设备。 自2010年年中以来生产的器件具有外部存储器作为板载闪存的一部分,而不是可移动介质。

    尝试使用WRITE_EXTERNAL_STORAGE的权限您应该使用是否有外部卡或不。

    这适用于我:

     path = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_MOVIES); File file = new File(path, "/" + fname); 

    并将我的文件放在适当的文件夹中

    添加

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

    在体现和使用马丁:

     path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES); File file = new File(path, "/" + fname); 

    有效。

    这里是来自android开发人员的简单示例。

    基本上,你可以像这样在内部存储器中写入一个文件:

     String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); 

    正如其他人所提到的,Android上的应用程序不能将文件写入任何文件夹的内部存储,但他们自己的私人存储(这是在/ data / data / PACKAGE_NAME)。

    您应该使用API​​来获取适用于您的应用的正确path。

    读这个 。

    Google限制了对外部SD卡的写入权限。 在API 19中,有一个名为“存储访问框架”的框架,允许您设置“合同”来允许写入权限。

    更多信息:

    Android – 如何使用新的存储访问框架将文件复制到外部SD卡

      以上就是android开发分享尝试在Android中创build文件:打开失败:EROFS(只读文件系统)相关内容,想了解更多android开发(异常处理)及android游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/addevelopment/517956.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐