2010-12-16 53 views
0

我正在寫一個小的Java應用程序,它將掃描任何特定單詞的文本文件,並需要有一個功能,據此它可以報告該單詞的一個實例被發現是文件中的第14個單詞,第三行,例如。在使用Java的文件中計算單詞和換行符?

爲此,我試圖使用我認爲將檢查以查看該輸入是否是一個換行符(\ n)字符下面的代碼,然後incerement我創建一個行變量:

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

這功課嗎?如果是這樣,請讓我們知道這一點。 – javamonkey79 2010-12-16 00:35:40

回答

3

閱讀javadocs for readLine

返回: 包含行的內容,不包括任何行終止符或null如果該流的結尾已經到達

0

readLine()帶換行字符串。只需增加循環的每一次迭代。另外,你的文件閱讀代碼過於複雜。只是做new BufferedReader(new FileReader("src/file.txt"))

相關問題