我有一个特殊的方法,我想计算文本文件中的行数,然后读取文件 我正在做的是通过迭代read.nextLine()然后重置缓冲区并再次从文件的开头读取来计算文件中的行数。我不确定我做错了什么
public void ReadFile() throws IOException{
try{
FileReader fr = new FileReader(path);
BufferedReader read = new BufferedReader(fr);
int numberOfLines=0;
while(read.readLine()!= null)
{
numberOfLines++; // Getting the number of lines
}
read.reset();
System.out.println(numberOfLines + ": is the no of lines");
baseString.append(read.readLine());
baseString.append(read.readLine());
baseString.append(read.readLine());
System.out.println(baseString);
}
catch(IOException e){
e.printStackTrace();
}
}
base string只是一个Stringbuffer
private StringBuffer baseString = new StringBuffer();
我明确需要计数来执行一些操作
答案 0 :(得分:1)
如上所述[{3}},文件按BufferedReader
顺序读取,因此您无法返回reset
的文件开头的BufferedReader
您必须创建新的FileReader
和BufferedReader
OR
使用here
答案 1 :(得分:1)
您需要在流上调用mark()
。如果之前未标记过流,则无法保证Reader.reset()
有效。 BufferedReader
的{{1}}实现特别记录为返回上一个标记。