Récupérer une ligne voulue dans un fichier texte
khalous91
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
Alors voilà j'ai un petit problème, en faite j'ai un fichier texte ci-dessous :
et j'aimerai récupérer les lignes de la forme set ... = .... c'est à dire je veux récupérer dans la console :
set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
set nono = ueueue777
set toto = tata
J'ai mon début de code que j'ai réaliser :
Pouvez vous m'aider please
Thinks
Alors voilà j'ai un petit problème, en faite j'ai un fichier texte ci-dessous :
#!/bin/csh -xv
#BSUB -J calmod_POGO_2CU
#BSUB -o calmod_POGO_2CU.o%J
#BSUB -L /bin/csh
umask 002
#----------------------------------------------------------------------
set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
jnfjkg
$gdfgdfg
dfgdfgdfg74654654fdg
fdgdfg
fgdf
set toto = tata
fgfg
fg;hmfh
dfdsfgdfg
set nono = ueueue777
set khjkhjkhkj 8787687657
titi = tutu
et j'aimerai récupérer les lignes de la forme set ... = .... c'est à dire je veux récupérer dans la console :
set dir_listing = jdfgjkdfnbjkdfnbjnfdbndfjbndfbndfkb
set nono = ueueue777
set toto = tata
J'ai mon début de code que j'ai réaliser :
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class DetecteSymbole {
public static void main(String[] args) {
String chaine ="";
String fichier = "fichiertxtP2CSH.txt";
// lit le fichier ligne par ligne
try{
InputStream ips=new FileInputStream(fichier);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String ligne;
while ((ligne=br.readLine())!=null){
System.out.println(ligne);
chaine+=ligne+"\n";
}
br.close();
}
catch (Exception e){
System.out.println(e.toString());
}
// récupérer toutes les lignes avec un set ... = ...
// a partir de là je suis bloquer grrr
}
}
Pouvez vous m'aider please
Thinks
A voir également:
- Récupérer une ligne voulue dans un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
Pour lire un flux texte (clavier, fichier...) je te conseilles la classe Scanner plutôt que la combinaison d'InputStream/Reader inutilement compliqués.
De plus ta String chaine pour accumuler le résultat est pas vraiment une bonne idée, une String ce n'est pas un conteneur, il vaut mieux utiliser une List par exemple.
Quant à ton problème, une expression régulière comme
Pour lire un flux texte (clavier, fichier...) je te conseilles la classe Scanner plutôt que la combinaison d'InputStream/Reader inutilement compliqués.
De plus ta String chaine pour accumuler le résultat est pas vraiment une bonne idée, une String ce n'est pas un conteneur, il vaut mieux utiliser une List par exemple.
Quant à ton problème, une expression régulière comme
set .+=.+devrait faire l'affaire. Exemple :
import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class DetecteSymbole { public static void main(String[] args) throws FileNotFoundException { File file = new File("C:/fichiertxtP2CSH.txt"); String regex = "set .+=.+"; List<String> list = new ArrayList<String>(); Scanner sc = new Scanner(file); while (sc.hasNextLine()) { String line = sc.nextLine(); if (line.matches(regex)) list.add(line); } sc.close(); for (String line : list) System.out.println(line); } }