我有一个access数据库里面有一个二进制的字段
字段内容是一个温度的集合,每个温度值占两个字节
我现在想把它读出来
我可以用
buf=rs.getBinaryStream("二进制温度集合");得到这个二进制字段
再用
byte[] Buffer = new byte[2];//这样我也不知道对不对,是不是得到的两个字节
buf.read(Buffer);
读出来两个字节
我不知道这两个字节应该怎么样转换成十进制显示出来,哪位高手知道,请指教

解决方案 »

  1.   

    byte的东西用的比较少,没有ToString()?
    是不是两字节,跟踪一下就能发现的.
      

  2.   

    你不知道这个byte数组的存储格式吗?如果只是简单的存储int值,你可以将byte读取出来
    按你上面的读法得到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格式
      

  3.   

    buf=rs.getBinaryStream("二进制温度集合");
    byte[] Buffer = new byte[2];//这样应该是没错的
    buf.read(Buffer);
    //下面需要进行移位操作,将两个byte转换成一个int,这个要根据你保存的时候是先存的高位还是低位,如果你自己也吃不准,就都尝试一下,反正就两种情况
    int ret = Buffer[0]<<8+Buffer[1];
      

  4.   

    int ret = Buffer[0]<<8+Buffer[1];
    这句话我试了,但jsp通不过
      

  5.   

    你的数据库里面存储方式都不知道,怎么让人家给你建议呢?2个字节存储一个int值,可能用的方法太多了。
      

  6.   

    (new Integer(new String(buf))).intValue() 可以吗?