gpt4 book ai didi

java - 如何确认java BufferedWriter成功写入文本文件

转载 作者:行者123 更新时间:2023-12-02 04:28:56 24 4
gpt4 key购买 nike

制作随 secret 码生成器。一旦生成密码(我这样做没有问题),密码就会保存到文本文件中。我将 BufferedWriter 放在 try-with-resources block 中,并在后面有一个 catch block ,因此如果存在 IOException 我会收到通知。但我想以某种方式打印(到控制台)密码是否实际写入包含我使用此程序随机生成的每个密码的文本文件中。

// password generator above
// Export passwords to txt file to save:

File destination = new File("/Users/danielpersonius/Desktop/random passwords.txt");
if(!destination.exists()){
destination.createNewFile();
}
try(BufferedWriter bw = new BufferedWriter(new FileWriter(destination.getAbsoluteFile(),true))){
// FileWriter(path, true) assures that the BufferedWriter appends to the previously created
// text file, not overwrites
String formatted_output = String.format("%s%n", password);
bw.write(formatted_output);
Thread.sleep(1000); System.out.println("Password Successfully saved to \"random passwords.txt\"");
}catch(IOException e){
System.err.println("Export error: " + e.getMessage());
}

现在,程序会自动打印已成功保存...,但是是否有某种方法可以实际测试是否已保存,并在未写入时打印Unsuccessful到文本文件?

编辑:写入失败会出现在我的 catch block 中吗?

最佳答案

Java 中 Writer 上的

write() 方法不会报告写入成功,但在失败时会抛出 IOException

如果您有 BufferedWriter,写入会在实际写入发生之前被缓存,因此为了查看更改,您需要将内容刷新到 Writer 中作者:

  1. 手动调用flush()方法,
  2. 调用也会自动刷新的 close() 方法

关于java - 如何确认java BufferedWriter成功写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758537/

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