2011-03-21 139 views
4

我想创建一个.txt文件并将其存储在Android手机的外部存储器中。我向Android Manifest添加了权限。当我运行代码时,它不会给我任何错误,但是文件永远不会被创建。不知道我做错了什么。无法在外部存储器上创建文件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); 
    } 
} 

回答

8
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(); 
} 
+0

这会在'ExtSdCard/Android/data/packagename/files'中创建一个空文件夹。但是在'DeviceStorage/Android/data/packagename/files'中创建'state.txt'文本文件。那么如何在外部SD卡文件夹中创建'state.txt'? – 2017-03-24 16:21:21

13

,你需要一个适当的权限:

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

是的,我做的Android Manifest的权限。 – nyalex5000 2011-03-21 18:14:52

+0

阿格错过了这一个,疯狂的疯狂! – rupps 2016-07-19 22:33:59

0

我可以使用下面的代码来创建外部存储的文件:

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); 
    } 
} 
+0

这会在'ExtSdCard/Android/data/packagename/files'中创建一个空文件夹。但是在'DeviceStorage/Android/data/packagename/files'中创建'state.txt'文本文件。那么如何在外部SD卡文件夹中创建'state.txt'? – 2017-03-24 16:21:28

相关问题