Potrzebuję umieścić zawartość java.nio.ByteBuffer
w java.io.OutputStream
. (Chciałbym mieć zamiast tego Channel
, ale nie) Jaki jest najlepszy sposób na zrobienie tego?Jak umieścić zawartość ByteBuffer w OutputStream?
Nie mogę użyć metody ByteBuffer's array()
, ponieważ może to być bufor tylko do odczytu.
Mogę również przeplatać zapisy do OutputStream między używaniem tego ByteBuffera i regularną tablicą z byte[]
, którą mogę bezpośrednio użyć.
czy zachowam kanał, jak i strumień, czy mogę połączyć oba połączenia? –
Ya, oczywiście może, zmniejsza koszt tworzenia kanału za każdym razem :) –
Należy zauważyć, że podejście to polega na kopiowaniu z ByteBuffer do tymczasowej tablicy, która jest następnie zapisywana do OutputStream. Jeśli wydajność jest ważna, możesz potrzebować trochę refaktoryzacji, aby uniknąć niepotrzebnych blokowych kopii. –