为了账号安全,请及时绑定邮箱和手机立即绑定

在android上写文件是不可能的

在android上写文件是不可能的

智慧大石 2022-07-20 20:25:49
我正在使用以下代码将一些内容写入外部文件:public class DiskWriter {    public static String TAG = "DiskWriter";    public static void writeStringToDisk(String jsonString) {        File root = android.os.Environment.getExternalStorageDirectory();        File dir = new File (root.getAbsolutePath() + "/JSONFolder");        dir.mkdirs();        DateFormat df = new SimpleDateFormat("yyyyMMdd-HHmmss.SSS");        File file = new File( dir, "/json-" + df.format(new Date(System.currentTimeMillis())) + ".txt");        Log.e(TAG, "Writing file to " + file.getAbsolutePath());        try {            file.createNewFile();            FileOutputStream f = new FileOutputStream(file);            PrintWriter pw = new PrintWriter(f);            pw.println(jsonString);            pw.flush();            pw.close();            f.close();        } catch (Exception e) {            e.printStackTrace();        }    }}另外,在我的清单中,我添加了以下权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />我还尝试了此代码的几种变体。但是,它永远不会起作用。这是输出:E/DiskWriter: Writing file to /storage/emulated/0/JSONFolder/json-20190306-190419.289.txtW/System.err: java.io.IOException: No such file or directoryW/System.err:     at java.io.UnixFileSystem.createFileExclusively0(Native Method)W/System.err:     at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)W/System.err:     at java.io.File.createNewFile(File.java:1345)W/System.err:     at app.generic.logic.DiskWriter.writeStringToDisk(DiskWriter.java:28)W/System.err:     at app.generic.logic.JSONParser.doInBackground(JSONParser.java:48)W/System.err:     at app.generic.logic.JSONParser.doInBackground(JSONParser.java:36)W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:333)我在我的设备(Oneplus 6T)上使用 Android 9,它没有植根或类似的东西。
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

您需要请求在外部存储上写入的权限。仅仅在清单中列出它是不够的。

在这里查看权限系统的解释:https ://developer.android.com/guide/topics/permissions/overview

有关如何请求权限的信息,请参阅https://developer.android.com/training/permissions/requesting.html


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信