我正在读取dds纹理,但是由于一旦构建了jar,我无法通过url和file访问这些纹理,并且必须使用InputStream.
所以我需要知道如何从java.io.InputStream获取一个java.nio.ByteBuffer.
Ps:无论通过第三方库,我只需要它的工作
对我而言,在这种情况下最好的是
Apache commons-io处理这个和类似的任务.
IoUtils类型具有静态方法来读取InputStream并返回一个byte [].
InputStream is;
byte[] bytes = IoUtils.toByteArray(is);
在内部创建一个ByteArrayOutputStream并将字节复制到输出,然后调用toByteArray().
更新:只要你有字节数组,就像@Peter指向的,你必须转换为ByteBuffer
ByteBuffer.wrap(bytes)