How to convert int[] to byte[]

As Brian says, you need to work out how what sort of conversion you need.

Do you want to save it as a “normal” image file (jpg, png etc)?

If so, you should probably use the Java Image I/O API.

If you want to save it in a “raw” format, the order in which to write the bytes must be specified, and then use an IntBuffer and NIO.

As an example of using a ByteBuffer/IntBuffer combination:

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]);
        }
    }
}

Leave a Comment