2015-05-04 17 views
11

Tôi đang đọc kết cấu dds, nhưng kể từ khi xây dựng bình tôi không thể truy cập vào các họa tiết đó thông qua urlfile và phải sử dụng InputStream thay thế.Java InputStream to ByteBuffer

Vì vậy, tôi cần biết cách tôi có thể có được java.​nio.ByteBuffer từ số java.io.InputStream.

Ps: dù thông qua thư viện phần thứ 3, tôi chỉ cần nó làm việc

Trả lời

18

Đối với tôi là tốt nhất trong trường hợp này là Apache commons-io để xử lý này và các nhiệm vụ tương tự.

Loại IOUtils có phương pháp tĩnh để đọc InputStream và trả lại byte[].

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

Bên này tạo ra một ByteArrayOutputStream và bản sao các byte đến đầu ra, sau đó gọi toByteArray().

CẬP NHẬT: chừng nào bạn có byte array, như @Peter chỉ, bạn phải chuyển đổi để ByteBuffer

ByteBuffer.wrap(bytes) 
+3

và sau đó đến ByteBuffer? – elect

+2

@chọn có, 'ByteBuffer.wrap (byte)' –

+0

@peterLawrey nó hoạt động hoàn hảo –

Các vấn đề liên quan