我想创建一个大小为 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 个字节。
但是我无法在特定位置附加文件数据......我该怎么做?
使用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)