我的想法也是读取byte。首先需要看一下C++写int、long到文件的顺序,我的意思是,哪边是高位、哪边是地位。 1. 读取一个byte[6]. 2. 假设C++把byte[0]写的高位、byte[1]写的低位,我们可以: int i = 0; i = i | byte[0]; i = i << 8; i = i | byte[1]; 这样,我们就得到了那个整数; 3. 接着,我们可以用同样的方法,得到那个long型。成功后,请楼主记得把结果告诉大家哦,^_^
DataInputStream dis=new DataInputStream(new FileInputStream(fileName)); short s=dis.readShort(); int i=(s>>8)|((s&0xff)<<8); //这个就是c中两个字节的int数. int x=dis.readInt(); int il=((x&0ff)<<24)|((x&0xff00)<<8)|((x&0xff0000)>>8)|((x&0xff000000)>>24);; il这个就是c中的四个字节的long数.
1. 读取一个byte[6].
2. 假设C++把byte[0]写的高位、byte[1]写的低位,我们可以:
int i = 0;
i = i | byte[0];
i = i << 8;
i = i | byte[1];
这样,我们就得到了那个整数;
3. 接着,我们可以用同样的方法,得到那个long型。成功后,请楼主记得把结果告诉大家哦,^_^
用FileInputStream类, 用readLine()方法就可读了吧,我觉得可以,没做过。
short s=dis.readShort();
int i=(s>>8)|((s&0xff)<<8); //这个就是c中两个字节的int数.
int x=dis.readInt();
int il=((x&0ff)<<24)|((x&0xff00)<<8)|((x&0xff0000)>>8)|((x&0xff000000)>>24);;
il这个就是c中的四个字节的long数.