我编写了以下代码来写入外部存储上的文件:
public static BufferedWriter out;
private void createFileOnDevice(Boolean append) throws IOException {
File Root = Environment.getExternalStorageDirectory();
Log.d("File",Root.toString());
Root.setWritable(true);
Root.setReadable(true);
Log.d("File","Writable: " + Root.canWrite());
if(Root.canWrite()){
File LogFile = new File(Root, "/Android/DriverInterfaceSystem");
if(!LogFile.mkdirs()){
Log.d("File","Couldn't make directories");
}
LogFile = new File(LogFile, "/trace.txt");
Log.d("File",LogFile.toString());
try{
FileWriter LogWriter = new FileWriter(LogFile, true);
LogWriter.write("--- New Record ---");
out = new BufferedWriter(LogWriter);
} catch(IOException e){
Log.d("File","FileWriter failed");
}
out.write("New record");
}
}
我已将 Manifest 中的权限设置为WRITE_EXTERNAL_STORAGE
.
我知道同时拥有 FileWriter 和 BufferedWriter 是多余的,但我正在测试它是否只是其中一个不起作用。
当我运行时,文件是在正确的位置创建的,但是程序拒绝将“--新记录--”或“新记录”写入文件,文件只是空的。
鉴于文件已创建,我似乎错过了一个非常简单的步骤,但如果我能看到它,我该死的。有什么想法吗?