Java - Drole de symboles fichier.txt

Résolu
ksyrium1 Messages postés 18 Statut Membre -  
ksyrium1 Messages postés 18 Statut Membre -
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 19031 Statut Modérateur 3 020
 
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 Statut Membre
 
C'était ça!

Merci beaucoup KX ca marche parfaitement maintenant!!



Bonne soirée.
0