Chercher une chaine de caractères

Fermé
hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009 - 13 mai 2008 à 23:02
petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009 - 17 mai 2008 à 04:47
Bonjour,

je cherche une méthode java qui me permet de trouver une chaine de caractère que je donne dans un fichier.

Merci pour votre aide.
A voir également:

1 réponse

petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009 14
14 mai 2008 à 10:21
d'apres ce que j'ai compris tu veux savoir si une chaine de caractere existe dans un fichier texte deja existant

voici un petit programme qui te demande d'introduire une chaine de caractere puis verifie si elle existe dans le fichier dont le chemin est "c:\fichier.txt"

si c'est bien ce que tu cherches tu pourras modifier ce petit programme pour t'en servir. bon courage

package lireFichier;

import java.io.*;

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {

InputStreamReader inputStreamReader =new InputStreamReader(System.in);
BufferedReader bufferedReader1=new BufferedReader(inputStreamReader);
String string=null;
string=bufferedReader1.readLine();
File fichier=new File("C:\\fichier.txt");
FileReader lecteurDeFichier=new FileReader(fichier);
BufferedReader br=new BufferedReader(lecteurDeFichier);
String st=null;
st=br.readLine();
int i=-1;
while((st!=null)&&(i==-1)){
i=st.indexOf(string);
st=br.readLine();
}
if(i==-1)
System.out.print("la chaine de caractere n'existe pas dans le fichier texte");
else
System.out.print("la chaine de caractere existe dans le fichier");
bufferedReader1.close();
br.close();
lecteurDeFichier.close();

}

}
3
hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009
14 mai 2008 à 12:07
Bonjour,

Merci bien pour votre réponse.

j'essaye maintenant de de modifier du texte dans un fichier.

est ce possible de lire et écrire dans le même fichier?

je trouve pas de classe ou méthode java qui me permet de lire et écrire dans le même fichier.

Merci pour votre aide.
0
petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009 14 > hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009
14 mai 2008 à 12:17
oui c'est possible de lire et d'ecrire dans le meme fichier.
d'abord tu ouvres le fichier comme je l'ai fait dans l'exemple precedant puis:
pour lire tu utilises l'objet FileReader qui prend en paramettre le fichier deja ouvert (comme dans l'exemple)
pour ecrire tu utilises l'objet FileWriter qui prend en paramettre le meme fichier ouvert
boncourage
0
hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009 > petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009
14 mai 2008 à 13:50
pour vous mettre au courant.

le but de l'application que je souhaite réaliser c changer une chaine de caractère que je cherche dans un fichier par une autre.

voilà le code que j'ai fait:

public class remplacer {

public static void main(String[] args) throws IOException {
InputStream ips1=new FileInputStream("textefiltré.txt");
InputStreamReader ipsr1=new InputStreamReader(ips1);
BufferedReader br1=new BufferedReader(ipsr1);

InputStream ips2=new FileInputStream("inc_vw_prescription.tpl");
InputStreamReader ipsr2=new InputStreamReader(ips2);
BufferedReader br2=new BufferedReader(ipsr2);

FileOutputStream ops = new FileOutputStream("fichiertext.txt");
OutputStreamWriter opsr = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsr);


String []str;
String ligne1=br1.readLine();
System.out.println(ligne1);
String ligne2;
while((ligne2=br2.readLine())!=null){
if(ligne2.contains(ligne1)){
System.out.println(ligne2);
str=ligne2.split(" ");
for(int i=0;i<str.length;i++){
//ligne2.replaceAll(str[i], "hassna");
}
}
}
}

}

mais l'erreure de ce code réside ds le fait que " FileOutputStream ops = new FileOutputStream("fichiertext.txt");
OutputStreamWriter opsr = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsr); "

ecrase le fichier initial et crée un nouveau qui est vide.

alors le but est de modifier le texte déja existant dans le fichier spécifié.

j'éspère que ce que je viens de dire est claire.

Merci infiniment pour votre attention.
0
petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009 14 > hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009
15 mai 2008 à 11:26
voici un programme qui fait exactement ce que tu veux. ce n'est la meilleure des facon de faire mais c'est juste pour t'expliquer. ce programme lit le fichier c:\fichier.txt est remplace toutes les occurences du mot "amine" par le mot "ahmed"


import java.io.*;

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {


File fichier=new File("C:\\fichier.txt");
FileReader fileReader=new FileReader(fichier);
FileReader fileReader1=new FileReader(fichier);
BufferedReader bufferedReader1=new BufferedReader(fileReader1);
int nbLigne=0;
String string1=bufferedReader1.readLine();
while(string1!=null){
nbLigne++;
string1=bufferedReader1.readLine();
}
bufferedReader1.close();
fileReader1.close();
String []str = new String[nbLigne];
BufferedReader bufferedReader=new BufferedReader(fileReader);
String string=bufferedReader.readLine();
int i=0;
while(string!=null){
str[i]=string.replaceAll("amine","ahmed");
i++;
string=bufferedReader.readLine();
}
bufferedReader.close();
fileReader.close();
FileWriter fileWriter=new FileWriter(fichier);
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
for(int z=0;z<str.length;z++){
bufferedWriter.write(str[z]);
bufferedWriter.newLine();
}
bufferedWriter.close();

}

}

la premiere boucle sert a compter le nombre de lignes afin de creer un tableau de String de la taille ideale.
la deuxieme boucle: apres avoir remplacer le mot "amine" par le mot "ahmed" stoque les ligne de texte modifiees dans le tableau str. apres ca j'ouvre le meme fichier en ecriture, c'est vrai que ca ecrase toutes les donnees mais je les ai deja sauvgarder dans le tableau str, apres ca il me suffit de re-ecrire les ligne de texte modifier dans le fichier. voiiiiila. j'espere que j'ai rependu a ta question, si ce n'ai pas encore le cas recontacte moi. bon courage
0
petit_apprenti Messages postés 17 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 28 décembre 2009 14 > hassona Messages postés 20 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 24 juin 2009
17 mai 2008 à 04:47
alors ca a resolu le probleme ou pas ?
0