Java 如何创建可以重复写入文件的方法
我有一个方法,可以创建Java 如何创建可以重复写入文件的方法,java,Java,我有一个方法,可以创建PrintWriter的新实例: public class Clazz { File temp = new File("temp.txt"); private void saveInTempFile(String text) { try ( PrintWriter pw = new PrintWriter(new FileWriter(temp, true)); ) {
PrintWriter
的新实例:
public class Clazz {
File temp = new File("temp.txt");
private void saveInTempFile(String text) {
try (
PrintWriter pw = new PrintWriter(new FileWriter(temp, true));
) {
pw.write("text: " + text + '\n');
pw.close();
} catch (IOException e) {
System.out.println("An error occurred.");
}
}
}
现在,我需要在程序中的不同点调用此方法,并且我想在temp
文件中添加一个新行(带有变量text
)。但是,在这种状态下,它只在我第一次调用此方法时写入文件。我在使用和不使用pw.close()时都试过了代码>没有区别
我需要在每次调用此方法时添加一行新行,但只添加第一行
严格来说,不必使用PrintWriter
或FileWriter
我将非常感谢您的帮助。就像我使用以下工具一样(我觉得它效率不高)
您可以打开PrintWriter,然后将其保存,以便在使用完毕之前不必关闭它。请将您的问题包括在内,其他人可以对其进行编译和测试,以显示您描述的确切行为。还包括执行MCVE时获得的输出。
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import java.io.File;
public class Clazz {
protected PrintWriter out;
private String outFileName;
private String prefix = "";
public Clazz(){
this.outFileName = "test";
}
private void createOutput(String outFileName) {
try {
this.out = new PrintWriter(new FileWriter(outFileName));
} catch (IOException e) {
System.out.println("Couldn't open file '" + outFileName );
// "' for report output\n" + e.getMessage(), e);
}
}
protected void write(String txt) {
if (out == null) {
createOutput(outFileName);
}
out.println(prefix + txt);
}
public void done() {
if (out != null) {
out.close();
}
}
public static void main( String[] args){
Clazz obj = new Clazz();
String output = "hi 1\n";
obj.write(output);
String output2 = "hello 2\n ";
obj.write(output2);
obj.done();
}
}