使用 java 更新文本文件
Updating text file using java
我正在做作业,其中一部分我需要遍历一个文本文件并根据我完成的某些搜索词输出信息,但之后我需要在其中一行编辑文档用户会接受,我编辑文档的代码是:
int y = null;
PrintWriter write = new PrintWriter(fileName);
if (confirmation.equals("Y")) {
System.out.println("What is your email to confirm your booking?");
email = S.next();
write.println(room + (" ") + roomB + (" ") + price + (" ") + pool + (" ") + lounge + (" ") + email);
y = 1;
}
它完成后会发生什么,它将只写入一行并删除其余数据,而不是仅仅更改那一行。
我认为你的问题是 println() 不关心文件中的内容。它只是写入流,导致覆盖您现有的内容。
如果您只需要更改一行,请考虑读取现有文件内容,然后替换该内容中的行,然后将整个修改后的内容写入文件。
当然,您必须记住,如果文件很大,一次读取全部内容可能会变得昂贵或危险,因此可能需要进行一些优化。
我正在做作业,其中一部分我需要遍历一个文本文件并根据我完成的某些搜索词输出信息,但之后我需要在其中一行编辑文档用户会接受,我编辑文档的代码是:
int y = null;
PrintWriter write = new PrintWriter(fileName);
if (confirmation.equals("Y")) {
System.out.println("What is your email to confirm your booking?");
email = S.next();
write.println(room + (" ") + roomB + (" ") + price + (" ") + pool + (" ") + lounge + (" ") + email);
y = 1;
}
它完成后会发生什么,它将只写入一行并删除其余数据,而不是仅仅更改那一行。
我认为你的问题是 println() 不关心文件中的内容。它只是写入流,导致覆盖您现有的内容。
如果您只需要更改一行,请考虑读取现有文件内容,然后替换该内容中的行,然后将整个修改后的内容写入文件。
当然,您必须记住,如果文件很大,一次读取全部内容可能会变得昂贵或危险,因此可能需要进行一些优化。