Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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