#1 Le 20/03/2015, à 03:02
- RayenKouki
[Resolu] Lecture de fichier ligne par ligne
Bonjour,
Je suis nouveau sur ce forum, aussi débutant en JAVA et en linux.
Alors je dois lire un fichier ligne par ligne. A chaque ligne je dois vérifier, si un mot clé existe. Si le mot clé existe je dois rediriger le résultat vers un autre fichier text.
J'ai trouvé un petit bout de code sur Internet pour la lecture du fichier:
class LireLigne
{
public static void main(String[] argv)
{
String filePath = "/home/ligne";
Scanner scanner=new Scanner(new File(filePath));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
}
}
Mais j'ai reçu 3 erreurs.
lire.java:7: cannot find symbol
symbol : class Scanner
location: class LireLigne
Scanner scanner=new Scanner(new File(filePath));
^
lire.java:7: cannot find symbol
symbol : class Scanner
location: class LireLigne
Scanner scanner=new Scanner(new File(filePath));
^
lire.java:7: cannot find symbol
symbol : class File
location: class LireLigne
Scanner scanner=new Scanner(new File(filePath));
^
3 errors
Dernière modification par RayenKouki (Le 20/03/2015, à 15:27)
Hors ligne
#2 Le 20/03/2015, à 11:00
- claudius01
Re : [Resolu] Lecture de fichier ligne par ligne
Bonjour,
Je mettrais ma main à couper que cette classe a été écrite sous un éditeur puis compilé en ligne de commande...
Faire du Java de cette manière là est contre productif même pour classe d'une vingtaine de lignes ;-)
Un seul conseil, choisir un IDE Java et s'investir au moins une journée pour une prise en main minimale...
Maintenant pour répondre à ta question, il m'a suffit de coller ton code dans Eclipse (c'est mon choix, mais d'autres IDE comme Geany permettent la même démarche) et en suivant ses avertissements et erreurs indiqués, voilà la classe qui fonctionne:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
class LireLigne {
public static void main(String[] argv) {
String filePath = "/tmp/pangramme";
try {
Scanner scanner = new Scanner(new File(filePath));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
et dont l'exécution sur le pangramme de Georges Perec reécrit avec un mot par ligne donne bien:
$ pwd
/home/tmp/Java
$ javac LireLigne.java && java -cp /home/tmp/Java LireLigne
Portons
dix
bons
whiskys
à
l'avocat
goujat
qui
fumait
au
zoo.
(Georges Perec)
et en cas de fichier non trouvé:
java.io.FileNotFoundException: /tmp/pangramme (Le fichier spécifié est introuvable)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at LireLigne.main(LireLigne.java:10)
Maintenant, à toi de voir par différence ce qu'il n'allait pas ;-)
Dernière modification par claudius01 (Le 20/03/2015, à 14:55)
Hors ligne
#3 Le 20/03/2015, à 13:22
- ssdg
Re : [Resolu] Lecture de fichier ligne par ligne
Sinon, il y a grep qui fait déjà ça tout seul... Evidément, ça ne marche pas sous windows (en tout cas nativement) mais un petit:
grep "mot clef" fichier fait exactement ça.
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#4 Le 20/03/2015, à 15:15
- RayenKouki
Re : [Resolu] Lecture de fichier ligne par ligne
Bonjour. Je vous remercie pour vos réponses.
Dernière modification par RayenKouki (Le 20/03/2015, à 15:27)
Hors ligne