Tôi cần đặt nội dung của số java.nio.ByteBuffer
vào java.io.OutputStream
. (ước gì tôi có một số Channel
thay vào đó nhưng tôi không) Cách tốt nhất để làm điều này là gì?Làm thế nào để đưa nội dung của một ByteBuffer vào một OutputStream?
Tôi không thể sử dụng phương thức array()
của ByteBuffer vì nó có thể là bộ đệm chỉ đọc.
Tôi cũng có thể xen kẽ ghi vào OutputStream giữa việc sử dụng ByteBuffer này và có một mảng thông thường là byte[]
mà tôi có thể sử dụng trực tiếp OutputStream.write()
.
nếu tôi giữ kênh cũng như luồng, tôi có thể kết hợp cuộc gọi đến cả hai không? –
Ya, chắc chắn có thể, giảm chi phí tạo kênh mỗi lần :) –
Lưu ý rằng cách tiếp cận này liên quan đến việc sao chép từ ByteBuffer vào một mảng tạm thời sau đó được ghi vào OutputStream. Nếu hiệu suất là quan trọng, bạn có thể cần phải làm một chút của refactoring để tránh các bản sao khối không cần thiết. –