gpt4 book ai didi

java - 即使在刷新编写器后,BufferedWriter 也不会写入 .txt 文件

转载 作者:行者123 更新时间:2023-11-29 21:59:56 25 4
gpt4 key购买 nike

这是我使用的代码,我没有收到任何错误或警告,但文件是空的,我创建了 aq.txt 文件并将其放在工作区中,它也显示在项目中。我确定这是我想念的愚蠢的东西,但我无法弄清楚。此外,我尝试了所有其他问题,但建议的答案是关闭流和/或刷新它,我都这样做了,但它们似乎不起作用。任何帮助将不胜感激!

     Writer writer = null;
FileOutputStream fos= null;
try{


String xyz= "You should stop using xyz";
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(getFilesDir()+File.separator+"aq.txt")));
writer.write(xyz);
writer.flush();
}
catch(IOException e) {
System.out.println("Couldn't write to the file: " + e.toString());
}
finally{
if(writer != null){
try {
writer.close();
}
catch(IOException e1) {
e1.printStackTrace();
}
}
}

最佳答案

像这样尝试:

fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(fos));
writer.write(xyz);
writer.flush();

Context类提供了一个辅助方法Context.openFileOutput(String name, int mode)对于位于应用程序文件目录中的文件,它将向您返回一个 FileOutputStream。

我看不出有任何直接原因说明您的方法行不通,但我知道我已经成功地使用了这种其他方法。

编辑: 在重新阅读您的问题后,我认为您对将要写入此文件的位置感到困惑。它不会写入工作区内的项目文件夹。这将被写入您运行它的 Android 设备的内部存储。每个应用程序都有自己的存储空间 block ,位于 \data\data\[package-name]\Files\ 您的文件将被写入那里,因此您将无法立即打开打开它并查看其中的内容(除非您的设备已获得 root 权限。)您将不得不使用 Java 代码打开它并将其内容打印到日志或其他一些输出方法,以验证您的写入是否已完成/未完成工作。

编辑 2:读取文件

FileInputStream in = openFileInput(FILE_NAME);
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader br = new BufferedReader(inputStreamReader);
String line = br.readLine();
Log.d("TAG", line);

这将读取文件的第一行并将其输出到日志。

关于java - 即使在刷新编写器后,BufferedWriter 也不会写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222843/

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