删除我使用 FileWriter 写的最后一行,java
Remove last line I wrote using FileWriter, java
(我遇到过好几次这种问题,但最后决定问问怎么做)
我的代码是这样的(不是真的,但你明白了):
FileWriter fW = new FileWriter(new File(fileName));
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
end
我在 java 中有一个文件编写器,并用它来将条目写入文件。在每个条目之后,我跳到下一行(每个条目一行)。我最初不知道实际会有多少条目。
现在这让我在文件末尾多了一行(但没有要填写的条目)。是否有使用文件编写器删除最后一行的(简单)方法。
(在这种情况下,您可以通过在 while 循环之外写入第一个然后交换顺序来获得类似的结果:
fW.write("\n");
fW.write(entry.next());
但如果有类似的东西:
fW.deleteLast()
知道它会简单而有用。我还没有找到类似的东西。)
您可以对您的循环做一个小改动,这样:
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
}
变成这样:
while (entries.hasNext()) {
fW.write(entry.next());
if(entries.hasNext())
fW.write("\n");
}
或者:
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
}
变为:
if(entries.hasNext())
fW.write(entry.next());
while (entries.hasNext()) {
fW.write("\n");
fW.write(entry.next());
}
与其写入文件,不如写入 StringBuilder。然后,一旦完成,只需从 StringBuilder 中删除最后一个字符,然后将内容写入文件。缺点是如果您的内容太大(100 兆字节),则会出现内存使用问题。
(我遇到过好几次这种问题,但最后决定问问怎么做) 我的代码是这样的(不是真的,但你明白了):
FileWriter fW = new FileWriter(new File(fileName));
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
end
我在 java 中有一个文件编写器,并用它来将条目写入文件。在每个条目之后,我跳到下一行(每个条目一行)。我最初不知道实际会有多少条目。
现在这让我在文件末尾多了一行(但没有要填写的条目)。是否有使用文件编写器删除最后一行的(简单)方法。
(在这种情况下,您可以通过在 while 循环之外写入第一个然后交换顺序来获得类似的结果:
fW.write("\n");
fW.write(entry.next());
但如果有类似的东西:
fW.deleteLast()
知道它会简单而有用。我还没有找到类似的东西。)
您可以对您的循环做一个小改动,这样:
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
}
变成这样:
while (entries.hasNext()) {
fW.write(entry.next());
if(entries.hasNext())
fW.write("\n");
}
或者:
while (entries.hasNext()) {
fW.write(entry.next());
fW.write("\n");
}
变为:
if(entries.hasNext())
fW.write(entry.next());
while (entries.hasNext()) {
fW.write("\n");
fW.write(entry.next());
}
与其写入文件,不如写入 StringBuilder。然后,一旦完成,只需从 StringBuilder 中删除最后一个字符,然后将内容写入文件。缺点是如果您的内容太大(100 兆字节),则会出现内存使用问题。