我有一个access数据库里面有一个二进制的字段
字段内容是一个温度的集合,每个温度值占两个字节
我现在想把它读出来
我可以用
buf=rs.getBinaryStream("二进制温度集合");得到这个二进制字段
再用
byte[] Buffer = new byte[2];//这样我也不知道对不对,是不是得到的两个字节
buf.read(Buffer);
读出来两个字节
我不知道这两个字节应该怎么样转换成十进制显示出来,哪位高手知道,请指教
字段内容是一个温度的集合,每个温度值占两个字节
我现在想把它读出来
我可以用
buf=rs.getBinaryStream("二进制温度集合");得到这个二进制字段
再用
byte[] Buffer = new byte[2];//这样我也不知道对不对,是不是得到的两个字节
buf.read(Buffer);
读出来两个字节
我不知道这两个字节应该怎么样转换成十进制显示出来,哪位高手知道,请指教
是不是两字节,跟踪一下就能发现的.
按你上面的读法得到byte[2] buf.
然后可以有两种方法得到int值1:通过System.arraycopy将byte[2]变成一个byte[4]数组,然后通过
ByteArrayInputStream ais=new ByteArrayInputStream(buf);
DataInputStream dis=new DataInputStream(ais);
dis.readInt();得到int值2:简单一点
int res=(buf[2]<<8)+(buf[3]<<0);
这样做可不可以还要看你的数据存储是不是int格式
byte[] Buffer = new byte[2];//这样应该是没错的
buf.read(Buffer);
//下面需要进行移位操作,将两个byte转换成一个int,这个要根据你保存的时候是先存的高位还是低位,如果你自己也吃不准,就都尝试一下,反正就两种情况
int ret = Buffer[0]<<8+Buffer[1];
这句话我试了,但jsp通不过