découper une chaine de caractères d'un fichier en java

découper une chaine de caractères d'un fichier en java - Java - Programmation

Marsh Posté le 02-04-2013 à 02:06:24    

Bonjour tout le monde,  
j'ai un fichier texte et j'aimerai découper ses chaines de caractères et faire un retour à la ligne selon une chaîne de caractères c à d je fais mon parcours et je lis mon fichier caractère par caractère et si je trouve mon chaine souhaité je déplace mon curseur au début de cette chaine et je fais un retour à la ligne..  
a plus par exemple mon fichier contient le texte suivant:  
ggggdgfgfghjhgfdfghjkkjuiyggggffddddddfgggggskqfhdsmlfhdsghsfdghfjgfjgjghkfjghgkgjfkgjggggkgjhkgjgkdfjfjdkjjdggggdhdsgdshgdshgdsh  
mon fichier après traitement (je teste selon la chaine "gggg" ):  
ggggdgfgfghjhgfdfghjkkjuiy  
ggggffddddddf  
gggggskqfhdsmlfhdsghsfdghfjgfjgjghkfjghgkgjfkgj  
ggggkgjhkgjgkdfjfjdkjjd  
ggggdhdsgdshgdshgdsh  
svp j'ai besoin de vos lumières et merci d'avance :)  

Reply

Marsh Posté le 02-04-2013 à 02:06:24   

Reply

Marsh Posté le 02-04-2013 à 18:40:41    

svp est ce que vous pouvez m'aider??? c'est urgent

Reply

Marsh Posté le 02-04-2013 à 22:15:02    

as tu regardé ces posts ?
http://forum.hardware.fr/hfr/Progr [...] 9129_1.htm
 
Ou tu bloques tu?
Sais tu lire un fichier ? Faire un chercher / remplacer ? Gérer les sauts de ligne ?
 

Reply

Marsh Posté le 02-04-2013 à 23:38:48    

salut willy le kid,
oui je sais comment lire un fichier
 
j'ai utilisé replaceall() mais elle me donne une mauvaise résultat c à d elle fait ce que je veux mais le problème est qu'avec cette méthode  
le contenu de mon fichier est réécrit à la fin de fichier.  
d'une autre façon le contenu de mon fichier devient:
ggggdgfgfghjhgfdfghjkkjuiy  
ggggffddddddf  
gggggskqfhdsmlfhdsghsfdghfjgfjgjghkfjghgkgjfkgj  
ggggkgjhkgjgkdfjfjdkjjd  
ggggdhdsgdshgdshgdsh  
ggggdgfgfghjhgfdfghjkkjuiyggggffddddddfgggggskqfhdsmlfhdsghsfdghfjgfjgjghkfjghgkgjfkgjggggkgjhkgjgkdfjfjdkjjdggggdhdsgdshgdshgdsh  
 
y-a-il une méthode que me permet d'éviter cette répitition svp

Reply

Marsh Posté le 03-04-2013 à 00:08:44    

Si il y a répétition ça vient de ton code.
 
Mauvaise utilisation de la méthode  
String.replaceAll(String regex, String replacement)
 
Ou peut être problème dans ton expression régulière.

Reply

Marsh Posté le 03-04-2013 à 00:27:55    

voici mon code:
import java.io.*
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.StringTokenizer;
 
 
public class ReadFile{
 
 public static void main(String[] args) throws IOException{
 
  //Créer un nom de fichier basé sur la date et l'heure
  SimpleDateFormat filePattern = new SimpleDateFormat("ddMMyyyy_HHmm" );
  String filename=filePattern.format(new Date(0)) + ".txt";
  //ouvrir le fichier
  File file=new File("C:\\eclipse\\Workspace\\AlertSnort.txt" );
  String filePath = "C:\\eclipse\\Workspace\\TotalAlert.txt";
 
  if(file.exists()==true){
   file.delete();
   file.createNewFile();
  }
 
  try{
     
   PrintStream printStream = new PrintStream(file);
   
   System.setOut(printStream);
   ;
   // Création du flux bufférisé sur un FileReader, immédiatement suivi par un  
   // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
   // est correctement instancié (évite les NullPointerException)
   BufferedReader buff = new BufferedReader(new FileReader(filePath));
   StringBuffer ligne= new StringBuffer();
 
 
 
   try {
     
     
    String line;
    int i=-1;
    String car;
    // Lecture du fichier ligne par ligne. Cette boucle se termine
    // quand la méthode retourne la valeur null.
    while ((line = buff.readLine()) != null&& i==-1) {
     String str2 = line.replaceAll("23/04/","\n23/04/" );
     System.out.println(str2);

     System.out.println(line);
     //faites ici votre traitement
    }
     
   }  
   catch (FileNotFoundException e) {
    e.printStackTrace();
   }
   
   
   buff.close();
   printStream.close();
 
   
   
  }  
   
  catch (FileNotFoundException e) {
   e.printStackTrace();
  }  
   
   
 }
 
}
 
j'ai un fichier appelé "TotalAlert.txt". je fais mon travail et je mis le résultat dans un 2ème fichier appelé " AlertSnort.txt "


Message édité par brino1987 le 03-04-2013 à 00:38:38
Reply

Marsh Posté le 03-04-2013 à 10:26:13    

Tu prends en fichier en entrée assez simple (de quoi faire 3 sauts de lignes).
Tu mets des points d'arrêt autour et dans le "while ((line = buff.readLine())"
Tu exécutes ton code en mode Debug (Eclipse fait cela) et tu devrais trouver le prb assez facilement.


Message édité par willy le kid le 03-04-2013 à 10:26:35
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed