gpt4 book ai didi

java - 我如何在 Java 中更新文件,我应该使用哪个类?

转载 作者:行者123 更新时间:2023-11-30 04:19:31 25 4
gpt4 key购买 nike

我的程序有以下代码,

BufferedWriter bufWriter = new BufferedWriter(new FileWriter(new File("xyz.dat"),true));
bufWriter.write(nameField+"/"+ageField+"/"+genderField+"\n");
bufWriter.flush();

这会创建一个文件..文件中存储的数据的示例格式..

Name1/Age1/Gender1                            // for user1
Name2/Age2/Gender2 // for user2
.
.
.
NameN/AgeN/GenderN //for userN

假设我需要更改用户5的年龄那么我该怎么做?我可以导航到第五个用户,并且可以通过 split("/",3); 方法获取数据,但如何对该特定用户进行更改?我在这里真的很困惑。

最佳答案

1)用Java 7解决短文件(适合内存)

List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
String line5 = replaceAge(lines.get(4), newAge);
lines.set(4, line5);
Path tmp = Files.createTempFile(prefix, suffix, attrs);
Files.write(path, lines)
Files.move(tmp, path, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING);

2) 对于大文件

    Path tmp = Files.createTempFile(prefix, suffix, attrs);
try (BufferedWriter bw = Files.newBufferedWriter(path, StandardCharsets.UTF_8);
BufferedReader br = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
String line;
for (int i = 1; (line = br.readLine()) != null; i++) {
if (i == 5) {
line = replaceAge(line, newAge);
}
bw.write(line);
bw.newLine();
}
}
Files.move(tmp, path, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING);

关于java - 我如何在 Java 中更新文件,我应该使用哪个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439644/

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