[java] Ecriture fichier sous AIX

kij_82 Messages postés 4260 Statut Contributeur -  
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour,

J'ai un petit soucis pour écrire dans un fichier de rapport en JAVA.
Pour ce qui est d'écrire dans le fichier, je n'ai aucun pb, voici la partie de mon code pour que vous puissiez voir la partie "technique" :

La partie qui permet d'ouvrir le fichier en écriture :
// --- Ouverture du fichier :
output = new BufferedOutputStream(new FileOutputStream(getFilePath()) );
// --- Definition du buffer d'écriture
setWriter(new BufferedWriter(new OutputStreamWriter(output, "UTF-8")));


La partie qui permet d'écrire dans le fichier ouvert :
// --- Write string in UTF-8 encoding
getWriter().write(theBuffer.toString());


Mon problème est le suivant : sur Window ca écrit impéccable en "mode texte" (UTF-8), par contre sous AIX, le fichier de rapport semble s'écrire en mode Binaire... et devient pour le coup illisible.

J'ai beau reprendre du code d'un autre projet qui fonctionne de la même manière et dont les fichiers de rapport sont lisible (fontionne également sous AIX), ca ne marche pas pour autant.
J'ai essayé avec un simple RandomAccessFile et sa méthode "writeBytes" -> mêmes résultats (lisible sous window mais pas sous AIX).

Je voulais savoir si quelqun avait déjà eu le même genre de problème et s'il pouvait éventuellement me donner un coup de pouce :)

Merci.
A voir également:

4 réponses

Chacual Messages postés 230 Statut Membre 150
 
Qu'est-ce qui t'empêche de le lire ?
Je ne comprends pas exactement le problème !
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Lorsque j'ouvre le fichier via la commande VI sous mon serveur AIX, je vois le fichier ne mode binaire. De même, lorsque ce fichier de rapport en envoyé par mail suite à l'arrêt de mon prog java, le fichier joint dans le mail est écrit dans un format illisible (binaire j'imagine donc)
Voilà la tête de mon fichier écrit :
^43?>^74^72?%^20^52^65^70?^72^74^2C^20+&<^20^58(<^20^66?^72_/^74^74^69>^67^20^72^65^70?^72^74^20^31^D^G^30^39^G^V^30^30^D^2
0^31^33^3A^30^35^2C^20>>>^0A^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^
E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E^E


Au lieu d'avoir :
Control Report, XXX report 17/09/2007 10:40, nnn
------------------------------------------------------------------------
Input file :
	File origin : XXXXXXXX
	File name   : XXXXXXXXX

------------------------------------------------------------------------
Total number of :
	XXX document read    0
	XXX document written 0

------------------------------------------------------------------------
Probable error report :
	Fatal error label    : 
	Fatal error location : 


0
Chacual Messages postés 230 Statut Membre 150
 
La locale configurée sur l'AIX utilise-t-elle le charset UTF-8 ?
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Aucune idée, quel commande permet de le savoir ?

Je me permet de rajouter le fait que ce que je chercher à savoir n'est pas pourquoi VI ne lit pas correctement, mais pourquoi ca écrit n'importe quoi dans mon fichier (puisque meme apres un envoi par mail et une lecture sous windows je n'arrive pas à le lire correctement)

Au départ j'ai fait avec un RamdomAccessFile :

En passant par :

// --- Ouverture fichier :
setWriter( new RandomAccessFile('nom_du_fichier'), "rw"));

// --- Ecriture dans fichier
getWriter().writeBytes('toto');


Ca ne fonctionne pas non plus (toujours écrit en binaire), alors qu'avec ces mêmes bout de code j'arrive à écrire un fichier XML et à le lire correctement sous VI (donc il est bien écrit).

:(
0