gpt4 book ai didi

java - 为什么我的文本文件在每次执行后没有被覆盖?

转载 作者:行者123 更新时间:2023-12-01 17:12:10 25 4
gpt4 key购买 nike

我的程序读取文本文件 in.txt。该文本文件可以有任意数量的行。

我的问题是,当我尝试写入输出(out.txt)文件时,它会附加它而不是覆盖。

输出文件应与输入文件具有相同的编号。

    try {
inFile = new Scanner(new File("in.txt"));

while (inFile.hasNext()) {

// Methods and stuff that doesn't matter...
// Problem starts here

try{
outFile = new PrintWriter((new FileWriter("out.txt", true)));
outFile.println(ArrayToString(intArray));
}
catch (IOException e) {
System.out.print("Could not find and write to the output file. " + e);
e.printStackTrace();
}
finally {
outFile.flush();
outFile.close();
}
}
}
catch (FileNotFoundException e) {
System.out.print("Could not find the input file. " + e);
e.printStackTrace();
}

ArrayToString 方法返回要写入的字符串。

编辑:

我忘记添加此详细信息:

再次阅读说明后,我不应该创建文本文件,而只是检查它是否存在。

最佳答案

参见the Javadoc for the FileWriter constructor :

public FileWriter(String fileName, boolean append) throws IOException

Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.

尝试将附加标志设置为 false。然后使用同一个编写器,而不是每次通过循环创建一个新的编写器(这意味着您应该在 while 循环的开头声明 FileWriter)。

(顺便说一句,请查看 java.util.Arrays.toString,您不需要为此编写自己的代码。)

关于java - 为什么我的文本文件在每次执行后没有被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23229299/

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