Java InputStream для ByteBuffer

Я читаю текстуры dds, но так как после создания jar я не могу получить доступ к этим текстурам через url и file и вместо этого использовать InputStream.

Поэтому мне нужно знать, как я могу получить java.​nio.ByteBuffer от java.io.InputStream.

Ps: независимо от библиотеки 3-й части, мне просто нужно работать

Ответ 1

Для меня лучшим в этом случае является Apache commons-io для решения этой и подобных задач.

Тип IOUtils имеет статический метод для чтения InputStream и возвращает a byte[].

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

Внутри это создает ByteArrayOutputStream и копирует байты на вывод, а затем вызывает toByteArray().

UPDATE: пока у вас есть byte array, как указано @Peter, вам нужно преобразовать в ByteBuffer

ByteBuffer.wrap(bytes)