Recuperer donnée d'un fichier texte JAVA

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...

10 réponses

Résumé de la discussion

Plusieurs esprits se sont penchés sur la lecture d'un fichier texte en Java afin d'extraire une valeur déterminée et de la stocker dans une variable. Des approches variées émergent, notamment lire chaque ligne puis repérer des valeurs avec indexOf et substring, ou bien utiliser une tokenisation avec StringTokenizer et Integer.parseInt. D'autres exemples montrent la lecture du fichier VarAextraire.txt, la construction d'un tableau d'entiers et l'extraction des valeurs présentes sur chaque ligne, premier élément ou premier token. En cas de besoin, les réponses évoquent aussi des cas pratiques comme des matrices de distances ou des structures de données, sans conclure sur une solution unique.

Bobot (l’IA à votre service)
  1. Re,

    Exemple pour extraire la 1ère valeur de chaque ligne:

    public static void main(String[] args)
    {
    //String chaine = null;
    // lecture du fichier texte
    try {
    InputStream ips = new FileInputStream("VarAextraire.txt");
    InputStreamReader ipsr = new InputStreamReader(ips);
    BufferedReader br = new BufferedReader(ipsr);
    String ligne;
    int numLigne = 0;
    int nombreDeLignes = 4; // par exemple
    int[] var = new int[nombreDeLignes ];

    while ((ligne = br.readLine()) != null)
    {
    numLigne++;
    System.out.println(ligne);
    //chaine += ligne + "\n";
    int ind = ligne.indexOf(" ");
    var[numLigne -1] = Integer.parseInt(ligne.substring(0, ind));
    }

    for (int i = 0; i < var.length; i++)
    {
    System.out.println("var[" + i + "] = " + var[i]);
    }

    br.close();
    }
    catch (Exception e) {
    System.out.println(e.toString());
    }

    Dan
    7
    1. merci "danimo" pour votre proposition
      Je lai exécutée et jai ça comme message
      java.lang.StringIndexOutOfBoundsException: String index out of range: -1

      bon j'avoue que je suis pas du tout forte en java.io c'est pour ça que jai pas compris il est où le probleme!!!

      merci encore une fois
      0
    2. @louna2009Est-que cette ligne existe bien :

      while ((ligne = br.readLine()) != null)
      {
      numLigne++; // CETTE LIGNE !!!
      System.out.println(ligne);
      0
    3. @danimooui je lai mise biensur!!
      0
    4. @louna2009Effectivement, sinon on aurait un autre message.

      Alors c'est sans doute ici:
      int ind = ligne.indexOf(" ");

      Est-ce que les valeurs dans les lignes sont bien séparées par un espace (celui qu'on recherche avec cette fonction) ?
      0
    5. @danimojai su d'ou est ce que ça provient
      c'est parce que la 1ere ligne de mon fichier texte etait vide
      il fallait juste supprimer l'espace

      jai l'affichage des 4 premieres lignes.
      je vais essayer de declarer d'autres variables et suivre votre principe!!
      Je vous confirme plutard

      merci
      0