Bonjour a tous,

Voila mon probleme :

j'ecrit par exemple un simple float en binaire :

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();
et je lit grace a :

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();
Ceci marche tres bien , le probleme c'est que ce fichier binaire doit etre recupéré avec un programme c++

le programme c++ qui lit mon fichier binaire ne me retourne pas le meme float que je sauvegarde avec mon prog java.


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;
}
Donc la question c'est y a t'il une inversion de byte ??
ou un decalage de byte ??
qui fait que l'echange de fichier binaire entre c++ et java n'est pas possible.


merci par avance .