Java equivalent of Python's struct.pack?

后端 未结 4 1019
天涯浪人
天涯浪人 2020-12-10 11:43

Is there any function equivalent to Python\'s struct.pack in Java that allows me to pack and unpack values like this?

pump_on = struct.pack(\"II         


        
相关标签:
4条回答
  • 2020-12-10 11:45

    I started development of project which is very close to Python Struct: java-binary-block-parser in JBBP it will look like

    JBBPOut.BeginBin().Int(0,0).Short(21,96).Int(512).End().toByteArray();
    
    0 讨论(0)
  • 2020-12-10 11:46

    Something like this:

    final ByteArrayOutputStream data = new ByteArrayOutputStream();
    final DataOutputStream stream = new DataOutputStream(data);
    stream.writeUTF(name);
    stream.writeUTF(password);
    final byte[] bytes = stream.toByteArray(); // there you go
    

    Later, you can read that data:

    final DataInputStream stream = new DataInputStream(
      new ByteArrayInputStream(bytes)
    );
    final String user = stream.readUTF();
    final String password = stream.readUTF();
    
    0 讨论(0)
  • 2020-12-10 11:51

    Closest feature in core Java is Serialization. It converts object into byte sequence and back.

    0 讨论(0)
  • 2020-12-10 11:53

    I think what you may be after is a ByteBuffer:

    ByteBuffer pump_on_buf = ...
    pump_on_buf.putInt(0);
    pump_on_buf.putInt(0);
    pump_on_buf.putShort(21);
    pump_on_buf.putShort(96);
    pump_on_buf.putInt(512);
    byte[] pump_on = pump_on_buf.array();
    
    0 讨论(0)
提交回复
热议问题