gpt4 book ai didi

java - 删除文本文件中的最后一行

转载 作者:搜寻专家 更新时间:2023-10-30 21:14:40 31 4
gpt4 key购买 nike

我想用 Java 删除文本文件中的最后一行;但是,下面的代码会删除所有内容。

public void eraseLast()
{
while(reader.hasNextLine()) {
reader.nextLine();

if (!reader.hasNextLine()) {
try {
fWriter = new FileWriter("config/lastWindow.txt");

writer = new BufferedWriter(fWriter);
writer.write("");
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

最佳答案

如果你想从文件中删除最后一行而不创建新文件,你可以这样做:

RandomAccessFile f = new RandomAccessFile(fileName, "rw");
long length = f.length() - 1;
do {
length -= 1;
f.seek(length);
byte b = f.readByte();
} while(b != 10);
f.setLength(length+1);
f.close();

从倒数第二个字节开始,寻找换行符,然后继续向后寻找直到找到一个。然后在该换行符后截断文件。

如果最后一个字符是换行符(即最后一行的结尾),则从倒数第二个字节而不是最后一个字节开始。

关于java - 删除文本文件中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732417/

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