Bonjour a tous,
Voila mon probleme :
j'ecrit par exemple un simple float en binaire :
et je lit grace a :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 float f = 3; DataOutputStream flux = new DataOutputStream(new FileOutputStream("mon file")); flux.writeFloat(f); flux.close();
Ceci marche tres bien , le probleme c'est que ce fichier binaire doit etre recupéré avec un programme c++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataInputStream flux = new DataInputStream( new FileInputStream("mon file")) ; float b = flux.readFloat();
le programme c++ qui lit mon fichier binaire ne me retourne pas le meme float que je sauvegarde avec mon prog java.
Donc la question c'est y a t'il une inversion de byte ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 FILE *f = NULL; float a = -1; f = fopen("java.raw","rb"); if(f == NULL) cout << "lecture Impossible" << endl; else { fread(&a,sizeof(float),1,f); fclose(f); cout << "on recupere " << b << endl; }
ou un decalage de byte ??
qui fait que l'echange de fichier binaire entre c++ et java n'est pas possible.
merci par avance .
Partager