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());
}
}
}
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 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
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
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 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

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