本帖最后由 plplum 于 2009-09-09 14:36:56 编辑

解决方案 »

  1.   

    好象long 类型的转不了,请给个例子,谢谢!
      

  2.   

    用流读啊,然后按照一定的规则去使用这些数据,该转成int的就转成int,该变成String的就转成String
      

  3.   

    我的想法也是读取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型。成功后,请楼主记得把结果告诉大家哦,^_^
      

  4.   

    直接用java流读不可吗,不论是什么写的文件
    用FileInputStream类,   用readLine()方法就可读了吧,我觉得可以,没做过。
      

  5.   

    按4楼的方法处理永远变成了正数吧? 不过不知道楼主说的是signed 还是unsigned
      

  6.   

    用DataInputStream(FileInputStream(filename))用readShort()方法读2个字节的数;用readInt()方法读4个字节的数。
      

  7.   

    DataInputStream是用来读取binary的
      

  8.   

    那要看看c++是怎么写int 和 long了.
      

  9.   

    int 的好象可以读到了,但是long 还是不行,请帮忙给出long的读取方法,谢谢
      

  10.   

    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数.
      

  11.   

    ls,不是负数行不行的问题.是byte[1]的最高位如果是1,结果就不对了.