我正在编写一个小型的Java应用程序,它将扫描文本文件以查找特定单词的任何实例,并且需要具有一个功能,通过该功能可以报告该单词的实例被发现是文件中的第14个单词,例如,第三行。
为此,我尝试使用以下代码,我认为这将检查输入是否是换行符(\ n),然后启动我创建的行变量:
FileInputStream fileStream = new FileInputStream("src/file.txt");
DataInputStream dataStream = new DataInputStream(fileStream);
BufferedReader buffRead = new BufferedReader(new InputStreamReader(dataStream));
String strLine;
String Sysnewline = System.getProperty("line.separator");
CharSequence newLines = Sysnewline;
int lines = 1;
while ((strLine = buffRead.readLine()) != null)
{
if(strLine.contains(newLines))
{
System.out.println("Line Found");
lines++;
}
}
System.out.println("Total Number Of Lines In File: " + lines);
这不起作用,它只是在这个文件的末尾显示0。我知道在while循环期间数据被放入strLine中,好像我稍微更改了代码以输出该行,它成功地从文件中获取每一行。
有人会碰巧知道上述代码不起作用的原因吗?
答案 0 :(得分:3)
返回: 包含行内容的字符串,不包括任何行终止字符,如果已到达流的末尾,则为null
答案 1 :(得分:0)
readLine()
删除换行符。只需递增循环的每次迭代。此外,您的文件读取代码过于复杂。只需new BufferedReader(new FileReader("src/file.txt"))