2010-12-16 9 views
0

Ich schreibe eine kleine Java - App, die eine Textdatei für beliebige Instanzen eines bestimmten Wortes scannt und eine Funktion haben muss, mit der sie melden kann, dass eine Instanz des Wortes das 14. Wort in der Datei ist dritte Zeile zum Beispiel.Wörter und Zeilenumbrüche in einer Datei mit Java?

Dafür habe ich versucht, den folgenden Code zu verwenden, die ich überprüfen gedacht, ob die Eingabe ein Newline zu sehen (\ n) war und incerement dann eine Linie Variable, die ich erstellt:

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); 

Dies funktioniert nicht, es zeigt einfach 0 am Ende dieser Datei an. Ich weiß, dass die Daten während der while-Schleife in strLine platziert werden, als ob ich den Code leicht ändern würde, um die Zeile auszugeben, und es wird erfolgreich jede Zeile aus der Datei abgerufen.

Würde jemand zufällig wissen, warum der obige Code nicht funktioniert?

+0

Ist das Hausaufgaben? Wenn ja, lass es uns wissen. – javamonkey79

Antwort

3

Lesen Sie die javadocs for readLine.

Returns: Ein String, den Inhalt der Zeile enthält, nicht einschließlich aller Leitungsabschlusszeichen oder null, wenn das Ende des Stroms

0

readLine() Streifen newlines erreicht ist. Erhöhen Sie einfach jede Iteration der Schleife. Außerdem überkomprimieren Sie den Code zum Lesen von Dateien. Just do new BufferedReader(new FileReader("src/file.txt"))

Verwandte Themen