制作随机密码生成器。生成密码后,我没有遇到任何问题,密码将保存到文本文件中。我将BufferedWriter
放在 try-with-resources 块中,然后有一个catch块,所以如果有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());
}
现在,程序会自动打印Successfully saved...
,但有没有办法实际测试是否存在,如果未写入文本文件则打印Unsuccessful
?
答案 0 :(得分:2)
write()
的 Writer
方法不会报告写入成功,但是它们会在失败时抛出IOException
。
如果您有BufferedWriter
,则在实际写入发生之前缓存写入,因此为了查看更改,您需要通过以下方式将内容刷新到Writer
:
flush()
方法,close()
方法也会自动刷新