在Java中查找文件结尾



我有一个方法,它循环遍历一个文件以查找行数。

static int findFileSize(Scanner f){
System.out.println("Got to counter:");
String str;
int line_count = 0;
while(f.hasNextLine()) {
line_count++;System.out.println(line_count);
//str = f.nextLine();
}System.out.println("File size: " + line_count);
return line_count;
}//end findFileSize 

当我不包括str=f.nextLine();时;,我可以看到它无限期地索引。发生这种情况的原因是什么?有没有一种方法可以在不需要将数据存储到字符串中的情况下找到.txt文件中的行数?

发生这种情况的原因是什么?

你没有从Scanner中读到任何东西,你只是在问它你是否能读到一些东西。

如果你走进一家商店,问他们是否有胡萝卜,如果答案是"是";,但是你没有买胡萝卜,商店里还有胡萝卜。所以,如果你走出去,走进来再次询问,他们仍然会有胡萝卜,所以他们会再次回答"是";(除非别人买了)。

你必须";买胡萝卜;使用CCD_ 2。

而不需要将数据不必要地存储到字符串中?

您不必将其存储在变量中:

f.nextLine();

将读取字符串并立即丢弃它。但这与将其存储在变量中没有太大区别:无论如何,变量只保留最后一行读取的内容。(但是,由于您没有给str一个初始值,因此它不会在循环之后明确指定,因此在任何情况下都无法在循环之后读取其值)。

最新更新