11
我正在讀取dds紋理,但由於一旦構建了jar,我無法通過url
和file
訪問那些紋理,而必須使用InputStream
來代替。Java InputStream到ByteBuffer
所以我需要知道如何從java.io.InputStream
獲得java.nio.ByteBuffer
。
PS:通過第三部分圖書館不管,我只需要它的工作
我正在讀取dds紋理,但由於一旦構建了jar,我無法通過url
和file
訪問那些紋理,而必須使用InputStream
來代替。Java InputStream到ByteBuffer
所以我需要知道如何從java.io.InputStream
獲得java.nio.ByteBuffer
。
PS:通過第三部分圖書館不管,我只需要它的工作
對我來說,在這種情況下,最好是Apache commons-io處理這種和類似的任務。
IOUtils
類型有一個靜態方法來讀取InputStream
並返回byte[]
。
InputStream is;
byte[] bytes = IOUtils.toByteArray(is);
內部這將創建一個ByteArrayOutputStream
並複製字節輸出,然後調用toByteArray()
。
UPDATE:只要你有byte array
,作爲@Peter指出,你必須轉換爲ByteBuffer
ByteBuffer.wrap(bytes)
再到ByteBuffer的? – elect
@elect yes,'ByteBuffer.wrap(bytes)' –
@peterLawrey它的工作完美 –