(我已经好几次这样的问题,但最后决定问怎么做) 我的代码是这样的(不是真的,但你得到了重点):
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()
知道这将是简单而有用的。我还没有找到类似的东西。)
答案 0 :(得分:0)
你可以对你的循环做一个小改动,这样:
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());
}
答案 1 :(得分:0)
而不是写入文件写入StringBuilder。然后,一旦完成,只需从StringBuilder中删除最后一个字符,然后将内容写入文件。缺点是如果您的内容太大(100兆字节),那么就会出现内存使用问题。