我有一个java
程序,可以创建一个文本文件,如下所示:
FileWriter fstream = new FileWriter(filename + ".txt");
BufferedWriter outwriter = new BufferedWriter(fstream);
我使用
在文件中添加了一行outwriter.write("line to be added");
现在在程序的某些阶段我需要知道我在文本文件中添加了多少行,而文件仍有等待添加的行。
整个过程是添加一些页脚和标题。
是否有任何方法可以找到当前或上次添加行号?
修改
添加function
或counter
来添加行是一种解决方案,但时间限制不允许我这样做。当我处理LOC
时,这将是很多地方的一个重大变化,它将耗费大量时间。
答案 0 :(得分:2)
它将执行类似tail
的操作,并在线路添加到文件时为每条线路回叫(通过TailListener)。然后,您可以在回调中保持计数。您不必担心编写文件读取/解析代码等。
答案 1 :(得分:0)
制作一个柜台:
lineCounter+="line to be added".split("\n").length-1
答案 2 :(得分:0)
不确定。只需实现自己的作家,例如LineCountWriter extends Writer
包裹其他Buffered
并计算书写行。
答案 3 :(得分:0)
制作一个将行写入文件的方法
private static int lineCount;
private static void fileWriter(BufferedWriter outwriter, String line)
{
outwriter.write(line);
lineCount++;
}
现在每次需要在文件中写入一行时,只需调用此方法即可。在任何时候你都需要知道行数,然后lineCount
变量就会引起关注。
希望这有帮助!
答案 4 :(得分:0)
创建一个这样的方法:
public int writeLine(BufferedWriter out, String message, int numberOfLines) {
out.write(message);
return numberOfLines++;
}
然后你可以这样做:
int totalLines = 0;
totalLines = writeLine("Line to be added", outwriter, totalLines);
System.out.println("Total lines: " + totalLines);
> "Total lines: 1"