C/c++与java之间的二进制文件相互读取

      C/ C++写入二进制数据的的字节顺序是从低到高(左低到右高),   而java.io.DataoutputStream写入的数据是从高到低(左高到右低)。这样在两种文件进行互操作时,进必须要进行转换,交互字节顺序。下面以C读取java二进制文件为例,给出一种可行的转换方式。  

      

#include 

int main() {
	//本程序实现将用java写入的二进制文件用C读取出来
	//Byte文件里有一个int型整数123456的java二进制形式
	FILE *f;
	char *filename="Byte";
	f=fopen(filename,"rb");
	 int a;
	fread(&a,sizeof(a),1,f);
	int sz=sizeof(a);
	char byte;
	int realint=0;
	for (int i=0;i>i*8&0xff);
		realint+=(byte&0xff)<<(sz-1-i)*8;
	}
	printf("%d\n",realint);

	return 0;
}

 结果输出为:123456;

说明:由于本人的博客无法上传文件,所以二进制文件“Byte”你可以自己找一个,相信不会难,如果你正准备把java文件读取出来。

你可能感兴趣的:(编程,c++,c,java,二进制文件读取)