有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在外部存储Android上创建文件

我想创建一个。txt文件并将其存储在Android手机的外部存储器中。我将权限添加到我的Android清单中。当我运行代码时,它不会给我任何错误,但该文件从未创建过。不知道我做错了什么

public void createExternalStoragePrivateFile(String data) {
    // Create a path where we will place our private file on external
    // storage.
    File file = new File(myContext.getExternalFilesDir(null), "state.txt");

    try {

        FileOutputStream os = null; 
        OutputStreamWriter out = null;
        os = myContext.openFileOutput(data, Context.MODE_PRIVATE);
        out = new OutputStreamWriter(os);
        out.write(data);
        os.close();

        if(hasExternalStoragePrivateFile()) {
            Log.w("ExternalStorageFileCreation", "File Created");
        } else {
            Log.w("ExternalStorageFileCreation", "File Not Created");
        }

    } catch (IOException e) {
        // Unable to create file, likely because external storage is
        // not currently mounted.
        Log.w("ExternalStorage", "Error writing " + file, e);
    }
}

共 (3) 个答案

  1. # 1 楼答案

    File file = new File(myContext.getExternalFilesDir(null), "state.txt");
    try {
    
         FileOutputStream os = new FileOutputStream(file, true); 
         OutputStreamWriter out = new OutputStreamWriter(os);
             out.write(data);
         out.close();
    }
    
  2. # 2 楼答案

    您需要适当的权限:

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  3. # 3 楼答案

    我可以使用以下代码在外部存储器上创建文件:

    public void createExternalStoragePrivateFile(String data) {
        // Create a path where we will place our private file on external
        // storage.
        File file = new File(myContext.getExternalFilesDir(null), "state.txt");
    
    
        try {
    
            FileOutputStream os = new FileOutputStream(file); 
            OutputStreamWriter out = new OutputStreamWriter(os);
    
            out.write(data);
            out.close();
    
            if(hasExternalStoragePrivateFile()) {
                Log.w("ExternalStorageFileCreation", "File Created");
            } else {
                Log.w("ExternalStorageFileCreation", "File Not Created");
            }
    
        } catch (IOException e) {
            // Unable to create file, likely because external storage is
            // not currently mounted.
            Log.w("ExternalStorage", "Error writing " + file, e);
        }
    }