Java相当于python的struct.unpack?

时间:2016-05-22 12:38:31

标签: java python pack

在java中是否有任何等同于struct.unpack('>h', buf)的函数允许我解压缩这样的值?

解压缩我们使用的java中的数据: RandomAccessFile

    RandomAccessFile raf = new RandomAccessFile(filename, "rw");

    try{
        raf.seek(((i - 1) * 1201 + (j - 1)) * 2);
    }catch(java.io.IOException ex){
        return null;
    }
    byte b1 = raf.readByte();
    byte b2 = raf.readByte();

    byte[]bytes = new byte[] {b1,b2};

    BigInteger swap = new BigInteger(bytes);

    raf.close();

1 个答案:

答案 0 :(得分:0)

“> h” 表示big-endian格式的短值,因此您只需使用方法readShort() of DataInputStream或使用第三方库{} {{} 3}}并通过它的解析器读取(可能需要像Python的结构提供的基于动态字符串的格式描述符),在这种情况下它会有像snipet这样的东西

 int value = JBBPParser.prepare("short;").parse(fileStream).findFieldForType(JBBPFieldShort.class).getAsInt();
相关问题