gpt4 book ai didi

Java 追加到文本文件的每行末尾

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

我想在现有文本文件的每行末尾添加一些文本。每次我运行代码时,它都会删除所有内容,但不会向文件写入/附加任何内容。非常感谢任何帮助。

import java.io.*;

public class RandomNumber
{
public static void main(String[] args) {

File dir = new File("C:\\testing");
System.out.println(dir.isDirectory());


try {
File file = new File(dir, "Test.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);

String s = "Add1,";
String s2 = "Add2\n";
String str;

while((str = br.readLine()) != null) {
StringBuffer sb = new StringBuffer(str);
sb.append(s + s2);
String y = sb.toString();
System.out.println(sb);
System.out.println("Appending");
bw.write(y);
}

bw.close();
System.out.println("Done");


}catch(IOException e) {}

}
}

最佳答案

catch(IOException e) {}

不要使用空的 catch block 。当出现异常时,您应该显示一条消息。

除非使用 RandomAccessFile,否则无法读取和写入同一个文件。

当您打开文件进行输出时,文件将被清除,因此没有数据可供读取,因此也没有数据可供写入,因此结果是文件现在为空。

如果您以“附加”模式打开文件进行输出,那么您可以读取文件中的数据(并且数据将保留在文件中),但所有写入语句都附加到原始文件的末尾,因此实际上,您现在拥有文件中数据的副本。

相反,你的基本逻辑应该是:

  1. 从输入文件中读取一行
  2. 将文本写入输出文件
  3. 读取所有数据后关闭这两个文件。
  4. 删除输入文件
  5. 将输出文件重命名为与输入文件相同的名称。

关于Java 追加到文本文件的每行末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842456/

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