Lire un fichier caractère par caractére

Résolu
katio Messages postés 7 Statut Membre -  
vlar Messages postés 2474 Statut Membre -
Bonjour tous,
je voulais lire un fichier de type texte et récupérer caractère par caractère et le stocker dans un vecteur

encore en détail:

mon fichier contient des séquence de 'P' et 'F' exemple: PPPPPPPPPPP FFFFFFPPPP PFPFPFFF...ect
mon but et de récupérer chaque séquence (PPPPPPPPPPP) dans un vecteur [P,P,P,P,P,P,P,P,P,P,P]
j'ai pensé a créer un vecteur de vecteur et chaque vecteur va récupérée une séquence. mais je n'arrive pas!!!!
je vous remercie a l'avance

voila mon essais:

import java.io.*;
import java.util.*;

public class Lecture{
public static void main(String[] args) {

String chaine = null;
Vector v=new Vector();
// 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) {
v.addElement(ligne);
System.out.println(v);
//chaine += ligne + "\r";
}
br.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
Configuration: Windows XP / Internet Explorer 6.0

8 réponses

  1. agah
     
    Vector<String> remplirVecteur(String fichier) throws IOException{
    Vector<String> vecteur = new Vector <String>();

    String str ="";
    FileReader fichieralire;
    fichieralire = new FileReader(fichier);
    int c=0;
    while((c = fichieralire.read()) != -1){
    switch(c){
    case '"': break;
    case ';': vecteur.add(str); str ="";break;
    default : str += (char) c;
    }
    }

    fichieralire.close();
    return vecteur;
    }
    0
  2. katio Messages postés 7 Statut Membre
     
    merci agha pour votre réponse mais vraiment je n'arrive pas a intégrer votre code!!!
    bon j'ai fait ça:

    import java.util.*;
    import java.io.*;

    public class testefichier{
    static Vector<String> vecteur = new Vector <String>();

    public static void main(String[] args){
    String fichier ="fichier.txt";
    vecteur= remplirVecteur(fichier);

    }

    static Vector<String> remplirVecteur(String fichier) throws IOException{
    Vector<String> vecteur = new Vector <String>();

    String str ="";
    FileReader fichieralire;
    fichieralire = new FileReader(fichier);
    int c=0;
    while((c = fichieralire.read()) != -1){
    switch(c){
    case '"': break;
    case ';': vecteur.add(str); str ="";break;
    default : str += (char) c;
    }
    }

    fichieralire.close();
    return vecteur;
    }
    }

    et il m'affiche ça comme erreur de compilation:

    testefichier.java:11: unreported exception java.io.IOException; must be caught or declared to be thrown
    vecteur= remplirVecteur(fichier);
    ^
    1 error

    merci bien
    0
    1. katio Messages postés 7 Statut Membre
       
      c'est il marche comme mais se que je veux est:

      soit mon fichier.txt contient des séquences séparer par un blanc :
      P P P F F F F ; P P P P P P P P F F F ; P P P F F F ; F F F ; P P P P ...ect
      je veux que un vecteur récupère qu'une seul séquence: vecteur1--->récupère P P P F F F F; vecteur2---->récupère P P P P P P P P F F F ...ect ; j'aimerai bien que vous me donnez une aidé comment je vais résoudre ce problème merci bien

      ce code récupère le contenu du fichier dans un seul vecteur
      import java.util.*;
      import java.io.*;


      public class testefichier{
      static Vector<String> vecteur = new Vector<String>();

      public static void main(String[] args){
      String fichier ="fichier.txt";
      try {
      InputStream ips = new FileInputStream(fichier);
      //InputStreamReader ipsr = new InputStreamReader(ips);
      //BufferedReader br = new BufferedReader(ipsr);
      //String ligne;

      vecteur= remplirVecteur(fichier);
      System.out.println(vecteur);
      } catch (Exception e) {
      System.out.println(e.toString());
      }


      }


      static Vector<String> remplirVecteur(String fichier) throws IOException{
      Vector<String> vecteur = new Vector <String>();

      String str ="";
      FileReader fichieralire;
      fichieralire = new FileReader(fichier);
      int c=0;
      while((c = fichieralire.read()) != -1){
      switch(c){
      case '"': break;
      case ',': vecteur.add(str); str ="";break;
      default : str += (char) c;
      }
      }


      fichieralire.close();

      return vecteur;
      }
      }
      0
  3. agah
     
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Vector;

    public class Vecteur{

    public static void main(String[] args) throws IOException {
    Vector<String> vecteur = new Vector <String>();

    String str ="";
    FileReader fichieralire;
    fichieralire = new FileReader("fichier.txt");
    int c=0;
    while((c = fichieralire.read()) != -1){
    switch(c){
    case '"': break;
    case ';': vecteur.add(str); str ="";break;
    default : str += (char) c;
    }
    }

    // afficher les element dans le vecteur
    for(int i = 0 ;i<vecteur.size();i++){
    System.out.println(vecteur.get(i));
    }
    }
    }

    chez moi il fonctionne bien

    Affichage
    P P P F F F F // v[1]
    P P P P P P P P F F F // v[2]
    P P P F F F // v[3]
    F F F // v[4]

    Maintenant tu peux mettre chaque element dans un vecteur si tu veux
    Main maintenant il est dans un seul vecteur
    0
  4. katio Messages postés 7 Statut Membre
     
    merci bien agha, je vais vous expliquer un peu plus en détail

    mon fichier.txt va contenir ça: P P P P ;P P P F P F F F;P P P F F F F F F;P P P F F F....c'est des séquences de pile ou face

    bon mon premier vecteur doit contenir ça: P P P P , donc la première séquence mais séparément c'est à dire que j'aurais 4 éléments dans mon premier vecteur [P,P,P,P]

    donc j'aurais quelque chose qui ressemble à ça a l'exécution:
    [P,P,P,P] // vecteur1
    [P,P,P,F,P,F,F,F]//vecteur2
    [P,P,P,F,F,F,F,F,F]//vecteur3
    [P,P,P,F,F,F] //vecteur4

    donc j'ai pensé a faire un vecteur de vecteurs mais je sais le manipuler
    merci bien agha;
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. agah
     
    Un String c'est un Vector<char>
    T'as pas besoin de faire un autre vecteur encore pour les stoker
    tu peux parcourir caractere par caractere un string

    String b = "agah";
    for (int i = 0; i< b.length(); i++)
    System.out.println(b.charAt(i));

    Sortie
    a
    g
    a
    h
    0
  7. ag
     
    Tu veux enlever des espaces

    Import java.io.FileReader;
    import java.io.IOException;
    import java.util.Vector;

    public class Vecteur{

    public static void main(String[] args) throws IOException {
    Vector<String> vecteur = new Vector <String>();

    String str ="";
    FileReader fichieralire;
    fichieralire = new FileReader("fichier.txt");
    int c=0;
    while((c = fichieralire.read()) != -1){
    switch(c){
    // enleve l'espace si tu veux pas des espace
    case ' ' : break;
    case ';': vecteur.add(str); str ="";break;
    default : str += (char) c;
    }
    }

    // afficher les element dans le vecteur
    for(int i = 0 ;i<vecteur.size();i++){
    System.out.println(vecteur.get(i));
    }
    }
    }
    0
  8. katio Messages postés 7 Statut Membre
     
    meci bien agah c'est bon j'ai pu réaliser se que je veux

    Vector v[]=new Vector[vecteur.size()];
    String b[]=new String[vecteur.size()];
    for(int i=0;i<vecteur.size();i++){
    v[i] = new Vector<String>();
    b[i]=vecteur.get(i);
    System.out.println(b[i]);
    for(int j=0;j<b[i].length();j++){

    v[i].add(b[i].charAt(j));
    }
    System.out.print(v[i]);
    }

    et j'ai se résultat:

    [P,P,P,P] // vecteur1
    [P,P,P,F,P,F,F,F]//vecteur2
    [P,P,P,F,F,F,F,F,F]//vecteur3
    [P,P,P,F,F,F] //vecteur4

    merci beaucoup pour votre aide.

    je te remerci ag votre code est utile merci
    0
  9. vlar Messages postés 2474 Statut Membre 621
     
    Maintenant que le Post est résolu, je me demandais qu'elles étaient les applications de ce genre de code??

    Qu'est ce qu'un vecteur?

    Cordialement
    0