découper une chaine de caractères d'un fichier en java - Java - Programmation
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 ?
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
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.
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 "
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.
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