Lire un fichier caractère par caractére

Résolu
katio Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
vlar Messages postés 2289 Date d'inscription   Statut Membre Dernière intervention   -
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());
}
}
}
A voir également:

8 réponses

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
katio Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
katio Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
katio Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
katio Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
vlar Messages postés 2289 Date d'inscription   Statut Membre Dernière intervention   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