Java - 有二进制流吗?

Kac*_*łat 0 java arrays operators

我有一个问题.

是否有库或类似于组合int和字符串到字节数组?

喜欢 :

byte temparray[] = new byte[10];

int a = 10;
int b = 10;

temparray << new String("12") << a << b;
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑

    byte[] buffer = new byte[649];

    byte[] charname = this.getName().getBytes();
    System.arraycopy(charname, 0 , buffer, 0, charname.length);

    for(int i=0;i<16;i++) //mystery crs 16 zeros
    {
        buffer[i+17] = (byte)0x30;
    }

    buffer[34] = this.faction;

    if(this.characterClass == 2)
    {
        buffer[40] = 2;      
    } else
    {
        buffer[40] = 1; 
    }
    System.arraycopy(BitTools.shortToByteArray(face), 0, buffer, 42, 2);
    buffer[44] = 1; 
    buffer[48] = (byte)this.characterClass; //class byte
    buffer[52] = 2; explanation yet

    buffer[54] = (byte)this.getLevel();
Run Code Online (Sandbox Code Playgroud)

这是我的数据包生成器的一个例子,我想简化它,但在数据包中我只使用短路,整数和字符串.

Mik*_*uel 5

java.io.ByteArrayOutputStream是一个流实现,它收集内部字节数组上的内容,您可以将其包装在一个java.io.OutputStreamWriter写入字符内容中.

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
Writer out = new OutputStreamWriter(byteOut, "UTF-8");  // Uses UTF-8 encoding
out.write("12");
out.write(10);
out.write(10);
out.close();

byte[] bytes = byteOut.toByteArray();
Run Code Online (Sandbox Code Playgroud)

在此之后,bytes.length写入的字节足够长byteOut.