将字节数组添加到特定位置的另一个字节数组java

hao*_*hao 1 java byte

我想创建一个大小为 512 字节的字节数组。

对于前 100 个字节,我想为文件名保留它,对于接下来的 412 个字节,我想用它来存储来自文件本身的数据。

像这样的事情:

|----文件名100字节----||------------文件数据412字节------------|

      byte[] buffer = new byte[512];
      add the filename of  byte[] type into the first 100 position
      insert the file data after the first 100 position 
Run Code Online (Sandbox Code Playgroud)

文件名可以少于 100 个字节。

但是我无法在特定位置附加文件数据......我该怎么做?

Dor*_*rus 6

使用System.arraycopy()怎么样?

byte[] buffer = new byte[data.length + name.length];
System.arraycopy(name, 0, buffer,           0, name.length)
System.arraycopy(data, 0, buffer, name.length, data.length)
Run Code Online (Sandbox Code Playgroud)

您可能需要添加检查以确保data.length + name.length不超过 512。

要将名称的长度固定为 100,请执行以下操作:

byte[] buffer = new byte[100 + name.length];
System.arraycopy(name, 0, buffer,   0, Math.min(100, name.length))
System.arraycopy(data, 0, buffer, 100, data.length)
Run Code Online (Sandbox Code Playgroud)

要将总长度固定为 512,请为 data.length 添加一个限制:

byte[] buffer = new byte[512];
System.arraycopy(name, 0, buffer,   0, Math.min(100, name.length))
System.arraycopy(data, 0, buffer, 100, Math.min(412, data.length))
Run Code Online (Sandbox Code Playgroud)