Java InputStream到ByteBuffer

我正在读取dds纹理,但是自从构建了jar之后,我无法通过访问这些纹理urlfile而不得不使用它InputStream

所以,我需要知道我怎么能获得java.​nio.ByteBufferjava.io.InputStream

无论通过第3部分库,我都只需要它起作用

回答:

对我而言,在这种情况下最好的是Apache commons-io来处理此任务和类似任务。

IOUtils类型具有静态方法来读取InputStream和返回byte[]

InputStream is;

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

在内部,这会创建一个ByteArrayOutputStream并将字节复制到输出,然后调用toByteArray()

:只要你有bytearray,如@Peter指出,你必须转换为ByteBuffer

ByteBuffer.wrap(bytes)


:如@saka1029所述,如果您使用的是Java

9+,则可以使用默认的InputStreamAPI,该API现在包含InputStream::readAllBytes函数,因此不需要外部库

InputStream is;

byte[] bytes = is.readAllBytes()

以上是 Java InputStream到ByteBuffer 的全部内容, 来源链接: utcz.com/qa/418806.html

回到顶部