Java InputStream到ByteBuffer

我正在读取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)

相关文章

Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Sh...
运行程序出现下面错误:HTTP Status 500 ------------------...
1、建立DM的profile,使用的模版在install_root/profileTempl...
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是...
英文操作系统导致 Debug 下的变量查看时显示乱码,可通过改变...
eclipse中javascript报错问题处理:三个地方:<1&...