gpt4 book ai didi

android FileWriter 无法打开文件(找不到文件)

转载 作者:行者123 更新时间:2023-11-29 01:45:09 30 4
gpt4 key购买 nike

我正在尝试编写一个伪造的 csv 文件,但我总是得到一个 IOException:找不到文件我的代码似乎是正确的,但我可能在某处遗漏了一些东西......filewriter = new FileWriter 行引发异常

java.io.File file;
file = new File(context.getExternalFilesDir(null), "/swimmer/trainings/");
String mTrainingsPath = file.getPath();

String csvFilePath = mTrainingsPath + java.io.File.separator + training.filename;
file = new File( csvFilePath);

try {
FileWriter fileWriter = new FileWriter( file );
PrintWriter csvOut = new PrintWriter( fileWriter );

String data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\\n"
+ " Cras facilisis elit eu nisl laoreet mollis.\\n"
+ " In feugiat nec elit at tincidunt.";

csvOut.println( data );
csvOut.close();

} catch( IOException e ) {
Log.e(TAG, "IOException in creating csv file");
Log.e(TAG, "STACKTRACE");
Log.e(TAG, Log.getStackTraceString(e));
}

这是日志文件:

java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.swimtechtest.swimmer/files/swimmer/trainings/myFirstTraining.csv: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:409)
at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
at java.io.FileWriter.<init>(FileWriter.java:42)
at ...swimmer.database.DatabaseHandler.putFakeTraining(DatabaseHandler.java:86

目录/storage/emulated/0/Android/data/com.swimtechtest.swimmer/files/swimmer/trainings/存在(之前创建)

最佳答案

您需要创建目录。给定您当前名为 file 的局部变量,调用 file.mkdirs() 来创建它们。如果目录已经存在,这不会抛出错误,因此通常您只需在尝试使用该目录之前调用 mkdirs() 即可。或者,使用 exists() 查看它是否存在,然后在需要时调用 mkdirs()

关于android FileWriter 无法打开文件(找不到文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922600/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com