使用Java计算文件中的单词和换行符?

时间:2010-12-16 00:32:00

标签: java search newline

我正在编写一个小型的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中,好像我稍微更改了代码以输出该行,它成功地从文件中获取每一行。

有人会碰巧知道上述代码不起作用的原因吗?

2 个答案:

答案 0 :(得分:3)

阅读javadocs for readLine

  

返回:       包含行内容的字符串,不包括任何行终止字符,如果已到达流的末尾,则为null

答案 1 :(得分:0)

readLine()删除换行符。只需递增循环的每次迭代。此外,您的文件读取代码过于复杂。只需new BufferedReader(new FileReader("src/file.txt"))