Подсчет слов и строк в файле с помощью Java? - PullRequest
0 голосов
/ 16 декабря 2010

Я пишу небольшое 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 в конце этого файла.Я знаю, что данные помещаются в strLine во время цикла while, как будто я немного изменяю код для вывода строки, она успешно получает каждую строку из файла.

Может кто-нибудь узнать причину, почемукод выше не работает?

Ответы [ 2 ]

3 голосов
/ 16 декабря 2010

Считайте javadocs для readLine .

Возвраты: строка, содержащая содержимое строки, , не включая символы окончания строки , илиноль, если достигнут конец потока

0 голосов
/ 16 декабря 2010

readLine() полоски новых строк.Просто увеличивайте каждую итерацию цикла.Кроме того, вы слишком усложняете код чтения файлов.Просто сделай new BufferedReader(new FileReader("src/file.txt"))

...