Bonsoir,
Je suis actuellement en train de créer un "grignoteur" d'espaces.
Je souhaite donc lire dans un fichier, mettre son contenu dans un tableau de caractères, vérifier par le biais du code ascii du caractère actuel qu'il n'est ni un espace, ni une tabulation, ni un retour chariot ('\n'), et remettre les caractères qui restent dans un autre tableau.
Jusqu'ici tout va bien, mais j'ai un gros problème pour l'écriture de ce tableau dans mon nouveau fichier, les caractères ne s'affichent pas... Auriez-vous une idée d'où provient mon erreur ?
Voici ma classe de tests (ne faites pas attention au désordre donc):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package fr.songbird.spaceDevourer; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class TestDirectory { private FileWriter writer = null; private FileReader reader = null; private File fichier = new File(File.separator+"home"+File.separator+"songbird"+File.separator+"Documents"+File.separator+"unDossier"+File.separator+"machin"); private File newFile = new File(File.separator+"home"+File.separator+"songbird"+File.separator+"Documents"+File.separator+"unDossier"+File.separator+"machin_"); private char[] tab = null; //tableau utilisé pour la lecture private char[] trucMuche = null; //tableau utilisé pour l'écriture public TestDirectory(){ try{ int i = 0; reader = new FileReader(fichier); tab = new char[(int)fichier.length()]; trucMuche = new char[(int)fichier.length()]; System.out.println("la taille de tab vaut: "+(int)fichier.length()); reader.read(tab); for(Character character : tab) { if(character != (char)0x20 && character != '\n' && character != 0x9) { System.out.print(character); trucMuche[i] = character; i++; } } newFile.createNewFile(); writer = new FileWriter(newFile, true); writer.write(trucMuche); }catch(Exception e) { e.printStackTrace(); } finally { writer.flush(); writer.close(); } } public static void main(String[] args) { new TestDirectory(); } }
Je vous remercie d'avance pour votre aide,
Cordialement,
Songbird.
EDIT: Avec la méthode flush() ça marche mieux... Et dire que ça faisait 45 minutes que je me posais la question
Partager