gpt4 book ai didi

java - 从 System.out.println 写入文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:12 26 4
gpt4 key购买 nike

我已经替换了许多字符串并输出了结果,现在正在尝试将这些行写入文本文件。这就是我所做的。我创建了一个新文件:

File newfile = new File("/Users/Bill/Desktop/newfile.txt");
if (newfile.exists()) {
System.out.println("File exists");
} else {
newfile.createNewFile();
System.out.println("New file created");

}

然后我尝试将 System.out.println(lines[i]); 的结果写入创建的文件中

    try {
WriteToFile newFile = new WriteToFile(newfile, true);
newFile.write(lines[i]);
// lines[i] is what I used to print out System.out.println(lines[i])
}

catch (IOException e) {
System.out.println("Error.");
}

不过,我没有得到我所期望的结果。有什么建议吗?

写入文件:

public class WriteToFile {
private String path;
private boolean append = false;

public WriteToFile(String filename) {
path=filename;
}

public WriteToFile(String filename, boolean appendfile){
path=filename;
append=appendfile;
}

public void write(String text) throws IOException {
FileWriter filewrite = new FileWriter(path, append);
PrintWriter print = new PrintWriter(filewrite);

print.printf("%s" + "%n", text);
print.close();
}
}

最佳答案

每次调用WriteToFile.write时,它都会重新打开文件进行写入,并截断文件的原始内容。您应该在构造函数中打开文件一次(并将 PrintWriter 存储在字段中),并添加一个 close 方法来调用 PrintWriterclose

在调用方,执行以下操作:

WriteToFile writer = new WriteToFile(filename);
try {
// writer.write(...);
} finally {
writer.close();
}

通过在 finally block 中调用 close,即使异常导致函数提前退出,也可以确保文件关闭。

关于java - 从 System.out.println 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6092305/

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