Probleme avec BufferWriter

Résolu
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 16 mars 2006 à 13:40
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 23 mars 2006 à 12:46
Bonjour!

Voilà, j'ai un probleme avec BufferWriter... Je veut copier un fichier dans un autre (sachant que le fichier source contient des données chiffrées, et donc des caractères speciaux)

voilà mon bout de code:

BufferedReader br = new BufferedReader(new FileReader(fileName));
BufferedWriter os1 = new BufferedWriter(new FileWriter(fileName+".pim1"));

String tmp2 = br.readLine();
String tmp3= new String("[][][][][]");

for (; !(tmp2.equals(tmp3)); i++) {
os2.write(tmp2);// br.readLine();
os2.newLine();
tmp2 = br.readLine();
}

Je remarque que le probleme vient toujours d'un caractère qui est remplacé par un "?" dans le fichier déstination...

Source: (ouvert avec WordPad)

zÚ-WNVž¿Ñ®ÌL.äT3SɈڧ»

Sortie: (ouvert avec WordPad)

zÚ-WNVž¿Ñ?®ÌL.äT3SɈڧ»

Bon ceçi est une ligne extraite du fichier qui evidamment est beaucoup plus consequant (quelques milliers de lignes)! C'est completement par hazard que j'ai vu ce caractère changé, il y en a peut etre d'autre...

Pourquoi BufferWriter ne fais pas son travail en recopiant simplement le fichier?

Parce que le probleme c'est que forcement lors du dechiffrage du fichier çà me donne nimp!

Si vous avez des solution, où si vous savez pourquoi il y a ce probleme, je suis preneur!

Merci

5 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
16 mars 2006 à 15:54
Salut,

utilise plutôt BufferedInputStream et BufferedOutputStream, ça ne fait pas de conversion de type.
Les reader et les writer travaillent principalement sur les chaines de caractères (en gros) donc la conversion des valeurs qui ne sont pas ASCII va poser un pb.
3
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
23 mars 2006 à 12:46
En faite, j'ai un fichier de type TEXTE, que je chiffre partiellement.... Donc je connais les lignes X et Y du fichier source qui doivent etre chiffrés...

Le probleme c'est qu'une fois chiffrée, le nombre de ligne est different, et qu'en plus dans la partie chiffrée il y a les caractères Assci 10 et 13 (CR et NL)...

Donc par defaut j'ai décidé d'ajouter des balises avant et apres la partie chiffrée, et en faisant comme çà çà marche... Donc a defaut de trouvé mieux mon probleme est resolu!

Merci pour ton aide...
3
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
16 mars 2006 à 13:42
Désoler pour les effet et les tailles de police sur mon post précedant, c'etait pas voulu!

Et evidemment, c'est bien os2 qui dois etre déclaré et pas os1, vous l'aurez compris!

Merci de votre aide!
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
20 mars 2006 à 13:07
@kirua12

Merci de ta reponse...

Le probleme c'est qu'en faite le fichier en question comporte 3 parties:
1)partie en clair (du debut a la ligne X)
2)partie chiffrée (de la ligne X à la ligne Y)
3) partie en clair (de la ligne Y à la fin)

Et donc les ReadLine() de BufferedReader m'etaient bien utile pour compté le nombre de ligne (dans une boucle for), alors que les BufferedStream utilise des buffer de bytes et il est donc difficile de compter les lignes... (de lire de la ligne X a la ligne Y par exemple)

Peut etre as tu une autre solution?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
23 mars 2006 à 10:04
Connais tu à l'avance l'endroit où est la partie chiffrée (nb de ligne depuis le début du fichier) ? Si oui, on peut trouver une solution, sinon est ce qu'il y a un ou plusieurs caractères qui déterminent le début de la partie chiffrée ?
0
Rejoignez-nous