2010-12-16 110 views
0

J'écris une petite application java qui va scanner un fichier texte pour toutes les instances de mot particulier et doit avoir une fonctionnalité par laquelle il peut signaler qu'une instance du mot a été trouvé pour être le 14ème mot dans le fichier, sur le troisième ligne, par exemple.Comptage de mots et de nouvelles lignes dans un fichier utilisant Java?

Pour cela, j'essayé d'utiliser le code suivant que je pensais vérifier si oui ou non l'entrée était un saut de ligne (\ n) caractère et incerement une variable de ligne que j'ai créé:

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

Cela ne marche pas, il affiche simplement 0 à la fin de ce fichier. Je sais que les données sont placées dans strLine pendant la boucle while, comme si je changeais légèrement le code pour sortir la ligne, il obtient avec succès chaque ligne du fichier.

Quelqu'un pourrait-il savoir pourquoi le code ci-dessus ne fonctionne pas?

+0

Est-ce que ce travail est fait? Si oui, s'il vous plaît laissez-nous savoir ceci. – javamonkey79

Répondre

3

Lire le javadocs for readLine.

Retours: une chaîne contenant le contenu de la ligne, y compris pas tous les caractères de terminaison de ligne ou null si la fin du flux a été atteinte

0

readLine() bandes nouvelles lignes. Il suffit d'incrémenter chaque itération de la boucle. En outre, vous compliquez trop votre code de lecture de fichier. Just do new BufferedReader(new FileReader("src/file.txt"))