elect elect - 7 months ago 15
Java Question

Java InputStream to ByteBuffer

I am reading dds textures, but since once built the jar I can't access those textures through

url
and
file
and have to use
InputStream
instead.

So I would need to know how I can obtain a
java.‚Äčnio.ByteBuffer
from an
java.io.InputStream
.

Ps: no matter through 3rd part libraries, I just need it working

Answer

For me the best in this case is Apache commons-io to handle this and similar tasks.

The IOUtils type has a static method to read an InputStream and return a byte[].

InputStream is;
byte[] bytes = IOUtils.toByteArray(is);

Internally this creates a ByteArrayOutputStream and copies the bytes to the output, then calls toByteArray().

UPDATE: as long as you have the byte array, as @Peter pointed, you have to convert to ByteBuffer

ByteBuffer.wrap(bytes)