|
|
|
|
Bonjour tout le monde,
j'etais entrain de voir les reponses deja proposées dans ce site pour lire un fichier texte et afficher son contenu (en JAVA)
Mon but c'est que je veux extraire une valeur bien determinée du fichier texte et la stocker dans une variable.
le code suivant aide à afficher tout le contenu du fichier
public static void main(String[] args) {
String chaine = null;
// lecture du fichier texte
try {
InputStream ips = new FileInputStream("fichier.txt");
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());
}
}
mais mon but c'est de recuperer par exemple la 2eme valeur de la 2eme ligne de mon fichier texte
sachant que le fichier texte comporte des int.
Merci pour votre aide...
Bonjour,
|
Si tu fonctionnes ligne par ligne (.readLine()), et si j'ai bien compris ce que tu veux
List<Integer> valeurs = new ArrayList<Integer>();
while ((ligne = br.readLine()) != null) {
System.out.println(ligne);
chaine += ligne + "\n";
valeurs.add(Integer.parseInt(chaine));
}
Le principe que pour chaque ligne du fichier tu ajoutes l'entier de la ligne dans la liste d'entiers. La méthode statique parseInt de la classe Integer permet de transformer une chaîne de caractère en entier. Car évidement, tout ce que retourne readLine est de type String. Tiens nous au courant de ton avancement
|
Re,
|
Qui fonctionne peu importe le nombre d'élément par ligne
List<List<Integer>> valeurs = new ArrayList<Integer>();
while ((ligne = br.readLine()) != null) {
System.out.println(ligne);
chaine += ligne + "\n";
String[] valeursTextuelles = ligne.split(" "); // " " équivalent à \s
List<Integer> valeursLigne = new ArrayList<Integer>();
if (valeursTextuelles != null)
for (String valeurTextuelle : valeursTextuelles)
valeursLigne.add(Integer.parseInt(valeurTextuelle));
valeurs.add(valeursLigne);
}
J'ai pas compilé mais ça ne devrait pas poser problème Cela dit, toute notre conversation ne t'a peut-être servi à rien. Il y a deux façons d'accéder aux fichiers, soit par flux soit de manière aléatoire. Dans ton cas tu sembles vouloir accéder à une ligne donnée et en tirer les informations. Il faut alors t'orienter vers des classes telles que RandomAccessFile. Précise moi si c'est bien ça et on regarde ça |
Bonjour,
|
Les tableaux d'entiers sont restrictifs et inadaptés, utilise des instance de java.util.List plutôt
|
Si tu veux accéder à toutes les valeurs, charge tout en mémoire (si c'est pas trop gros évidemment), en passant par une lecture de flux, BufferedReader et compagnie
|