Bonjour, ce script est sensé lire dans le File: OpenFile.getSelectedFile() (ouvert avec le file chooser) et ecrire dans le File "f" déja crée au debut de mon script (c'est qu'un bout). Je ne comprend pas pourquoi la syntaxe:
ecrtitureAvecBuffer.write(ligne);
n'écrit pas dans mon fichier "f".
Besoin de votre aide je vous mets le script afin que vous puissiez l'executer... Je vous envoie un exemple de mon fichier de depart et mon fichier converti que j'attend avoir...
Merci d'avance pour votre aide,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| String ligne;
boolean swofMode = false;
boolean sgofMode = false;
try {
BufferedReader lecteurAvecBuffer = new BufferedReader(new FileReader(OpenFile.getSelectedFile()));
BufferedWriter ecrtitureAvecBuffer = new BufferedWriter(new FileWriter(f));
System.out.println("Full path Reader: " + OpenFile.getSelectedFile().toString());
System.out.println("Full path Writer: " + f.toString());
while ((ligne = lecteurAvecBuffer.readLine()) != null) {
//je suis en train de lire le fichier ligne par ligne
System.out.println(ligne);
if (ligne.trim().equals("SWOF")) {
swofMode = true;
sgofMode= false;
System.out.println("je suis mode SWOF");
ecrtitureAvecBuffer.write(ligne);
}
else if (ligne.trim().equals("SGOF")) {
sgofMode = true;
swofMode = false;
System.out.println("je suis mode SGOF");
ecrtitureAvecBuffer.write(ligne);
}
else if (ligne.substring(0, 2).equals("--") || ligne.equals("/") || (ligne.trim().contains("==")) || ligne.trim().equals("SWOF") || ligne.trim().equals("SGOF") || ligne.trim().isEmpty() ) {
System.out.println("commentaire, fin de table, ou ligne vide, SWOF, SGOF => je l'ignore ");
ecrtitureAvecBuffer.write(ligne);
}
else { //vrai ligne avec des valeurs
String[] splitted = ligne.trim().split(" "); // space
if (splitted.length != 4) {
throw new RuntimeException("Erreur: la ligne '"+ligne+"' ne contient pas 4 fragments");
} else {
if (swofMode) {
splitted[3] = "nouvel valeur SWOF";
} else if (sgofMode) {
splitted[3] = "nouvel valeur SGOF";
}
ligne = splitted[0] + "\t" + splitted[1] + "\t" + splitted[2] + "\t" + splitted[3];
System.out.println("new line = " + ligne.trim());
}
System.out.println("et ma ligne devient : " + ligne);
ecrtitureAvecBuffer.write(ligne);
}
}
ecrtitureAvecBuffer.close();
}
catch(Exception ex) {
System.out.println("Erreur : je sors !");
Logger.getLogger(KrPcImporterView.class.getName()).log(Level.SEVERE, null, ex);
} |
Partager