gpt4 book ai didi

java - 使用Filewriter写入但文件仍为空。

转载 作者:行者123 更新时间:2023-12-01 12:47:34 27 4
gpt4 key购买 nike

我有以下代码要写入三个文件中。我在写入之前打印了字符串,以确保其中包含一些数据,打印的字符串显示通过调用此函数提供给它们的数据,但在创建文件时文件为空。请提出一些建议。

public static void save(String editedFileText,String srcFileText,String translFileText)throws IOException { 
JFileChooser chooser = new JFileChooser();
System.out.println(editedFileText);
System.out.println(srcFileText);
System.out.println(translFileText);
int retrival = chooser.showSaveDialog(null);
if (retrival == JFileChooser.APPROVE_OPTION) {
try {
FileWriter edit = new FileWriter(chooser.getSelectedFile()+".txt");
edit.write(editedFileText.toString());
FileWriter srcFile = new FileWriter(chooser.getSelectedFile()+"_srcText"+".txt");
srcFile.write(srcFileText.toString());
FileWriter trans = new FileWriter(chooser.getSelectedFile()+"_translFile"+".txt");
trans.write(translFileText.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}

最佳答案

养成在 try-with-resources 中创建所有 Writers、Readers、InputStreams 和 OutputStreams 的习惯声明。它确保它们正确关闭:

try (FileWriter edit = new FileWriter(chooser.getSelectedFile()+".txt")) {
edit.write(editedFileText);
}
try (FileWriter srcFile = new FileWriter(chooser.getSelectedFile()+"_srcText"+".txt")) {
srcFile.write(srcFileText);
}
try (FileWriter trans = new FileWriter(chooser.getSelectedFile()+"_translFile"+".txt")) {
trans.write(translFileText);
}

如果您只是编写单个字符串,则可以选择使用 Files.write ,它允许您完全放弃使用 Writer:

Files.write(Paths.get(chooser.getSelectedFile()+".txt"),
editedFileText.getBytes());
Files.write(Paths.get(chooser.getSelectedFile()+"_srcText"+".txt"),
srcFileText.getBytes());
Files.write(Paths.get(chooser.getSelectedFile()+"_translFile"+".txt"),
translFileText.getBytes());

关于java - 使用Filewriter写入但文件仍为空。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24542375/

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