2016-05-22 17 views
0

Gibt es irgendeine Funktion, die struct.unpack('>h', buf) in Java entspricht, die mir erlaubt, solche Werte auszupacken?Java-Äquivalent von Pythons struct.unpack?

SOLUTION

Daten in Java zu entpacken verwenden wir: Random

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(); 
+0

Was ist 'struct.unpack'? –

+0

Vielleicht '' 'Integer.parseInt (buf, 2)' ''? –

+1

Wenn Sie eine Antwort auf Ihre Frage geben möchten, tun Sie dies bitte im Antwortbereich unten, nicht als Bearbeitung Ihrer Frage –

Antwort

0

"> h" bedeutet so kurzen Wert im Big-Endian-Format, dass Sie nur Verwenden Sie die Methode readShort() of DataInputStream oder verwenden Sie die Bibliothek eines Drittanbieters wie JBBP und lesen Sie ihren Parser durch (möglicherweise benötigen Sie einen dynamischen stringbasierten Formatdeskriptor l Ike von Python-Struktur zur Verfügung gestellt, in dem Fall wird es so etwas wie die Snipet haben

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