2013-07-05 126 views
2

对于我正在开发的应用程序,我想将一些文本写入SD卡上的文本文件。我试图用下面的代码来做到这一点。这给出了一个错误,但我不明白为什么。据我所知,我完全遵循了网络上的所有例子。在logcat中,我看到了第一个日志,但没有看到第二个日志,所以问题在于创建文件。你们有什么想法吗?尝试保存文件时没有此文件或目录

public void saveDataToFile(String data, String fileName) { 

    Log.d("Checks", "Trying to save data"); 

    try { 
     // Set up the file directory 
     String filePath = Environment.getExternalStorageDirectory().toString() + "/Data Folder"; 
     File fileDirectory = new File(filePath); 
     fileDirectory.mkdirs(); 
     Log.d("Checks", "Directory created"); 

     // Set up the file itself 
     File textFile = new File(fileDirectory, fileName); 
     textFile.createNewFile(); 
     Log.d("Checks", "File created"); 

     // Write to the file 
     FileOutputStream fileOutputStream = new FileOutputStream(textFile); 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream); 
     outputStreamWriter.append(data); 
     outputStreamWriter.close(); 
     fileOutputStream.close(); 

     Toast.makeText(mContext, "Done writing to SD card", Toast.LENGTH_SHORT).show(); 
    } catch (Exception e) { 
     Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_LONG).show(); 
    } 

} 

编辑

原来我忘了正确的权限添加到清单。它现在有效!

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

您是在模拟器中测试吗? – iTurki

+1

您是否声明了访问和写入外部SD卡的正确使用权限? –

+0

好吧,我感觉很傻!我忘了在清单中设置权限:)。 – Zero

回答

2

您是否声明了访问和写入外部SD卡的正确使用权限?

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

请将其标记为正确,因为它适用于您。 –

相关问题