Java - Drole de symboles fichier.txt

Résolu/Fermé
ksyrium1 Messages postés 18 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 18 septembre 2012 - 18 avril 2012 à 17:40
ksyrium1 Messages postés 18 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 18 septembre 2012 - 18 avril 2012 à 19:28
Bonjour,


voilà quelques jours que je crée un programme qui doit s'appuyer sur des données d'un fichier excel.
Vu que je dois manipuler ces données "dans tous les sens" (1ère fois que j'utilise POI) j'ai décidé de les reclasser dans un fichier .txt .

Et là ça se complique, j'ai extrait tout ce dont j'avais besoin du fichier excel sous forme de Double, je les rentre dans un fichier.txt et lorsque j'ouvre ce fichier je regrette de ne pas parler chinois (il n'y a que des symboles "chinois").

Extrait du code:

try {


fos = new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(
new File("test.txt"))));





for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();) {
totalLigne = 0;
row = (HSSFRow) rowIt.next();

for (Iterator cellIt = row.cellIterator(); cellIt.hasNext();) {
cell = (HSSFCell) cellIt.next();
System.out.println("cellule: "+cell);




celldouble=0.0;
cellstring=cell.toString();


if(cellstring!=""){
celldouble = Double.parseDouble(cellstring);

fos.writeDouble(celldouble); //--------------------------ici j'écris
}





System.out.println("celldouble |"+celldouble+"|"); // --------"bons" nombres





System.out.println("");

}


}




fos.close();
System.out.println("terminé !");

} catch (FileNotFoundException e) {
//Cette exception est levée
//si l'objet FileInputStream ne trouve aucun fichier
e.printStackTrace();
} catch (IOException e) {
// Erreur
//d'écriture ou de lecture
e.printStackTrace();
}





} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


En sachant que dans la console les "bons" nombres apparaissent, mais pas dans test.txt...

Merci d'avance!

A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 18/04/2012 à 18:01
C'est parce que tu utilises un ObjectOutputStream, ce que tu fais en fait c'est que tu stockes les valeurs de tes double en binaire sur 64 bits, et non pas en chiffres comme tu le voudrais... Essayes plutôt :

FileOutputStream fos = new FileOutputStream("test.txt"); 
// ... 
fos.write(cellstring.getBytes());

La confiance n'exclut pas le contrôle
0
ksyrium1 Messages postés 18 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 18 septembre 2012
18 avril 2012 à 19:28
C'était ça!

Merci beaucoup KX ca marche parfaitement maintenant!!



Bonne soirée.
0