以前通过c语言的fwrite函数把一个复杂的结构体存入到一个二进制文件中,由于需要,想使用Java来读出其内容,原来的c语言的那个结构体定义我很清楚.
期待高手解答,谢谢!

解决方案 »

  1.   

    很麻烦,我们也遇到这个问题了,我们是用readByte读入,去掉空格,转换成串,再转为对应结构体的数据类型
      

  2.   

    elitejs(小白) :能给出示例吗?谢谢。
      

  3.   

    赫赫,一样的读写。
    用nio的一些东西比较好
    1。结构体的每个成员的字节宽度。比如要读取一个int 型的(windows下的  4字节)
    可以用
    ByteBuffer 
    如果是同一个操作系统 就用这个
    ByteBuffer byteBuffer = ByteBuffer.allocate(2048).order(ByteOrder.nativeOrder());//分配2048字节缓冲.本地编码方式byteBuffer.getInt();//就是得到一个整数
    byteBuffer.getFloat();//得到浮点数
    其它类似(可以看看nio的参考,字符串也一样要注意编码方式 如
    Charset.forName("UTF-8").decode(byteBuffer);这里面的"UTF-8"就是源文件存储的编码方式.
    中文就可能使"GBK"了
    )