Lire un fichier caractère par caractére
Résolu
katio
Messages postés
7
Statut
Membre
-
vlar Messages postés 2474 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());
}
}
}
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
-
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;
} -
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-
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;
}
}
-
-
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 -
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; -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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));
}
}
} -
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 -
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