如何将 int[] 转换为 byte[]
2022-08-31 15:13:06
我有一个表示RGB图像的整数数组,并希望将其转换为字节数组并将其保存到文件中。
在Java中将整数数组转换为字节数组的最佳方法是什么?
我有一个表示RGB图像的整数数组,并希望将其转换为字节数组并将其保存到文件中。
在Java中将整数数组转换为字节数组的最佳方法是什么?
正如Brian所说,您需要弄清楚需要什么样的转换。
是否要将其另存为“普通”图像文件(jpg,png等)?
如果是这样,您应该使用 Java Image I/O API。
如果要以“原始”格式保存它,则必须指定写入字节的顺序,然后使用和 NIO。IntBuffer
作为使用字节缓冲器/IntBuffer 组合的示例:
import java.nio.*;
import java.net.*;
class Test
{
public static void main(String [] args)
throws Exception // Just for simplicity!
{
int[] data = { 100, 200, 300, 400 };
ByteBuffer byteBuffer = ByteBuffer.allocate(data.length * 4);
IntBuffer intBuffer = byteBuffer.asIntBuffer();
intBuffer.put(data);
byte[] array = byteBuffer.array();
for (int i=0; i < array.length; i++)
{
System.out.println(i + ": " + array[i]);
}
}
}
也许使用这种方法
byte[] integersToBytes(int[] values)
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
for(int i=0; i < values.length; ++i)
{
dos.writeInt(values[i]);
}
return baos.toByteArray();
}