Лучшая практика для чтения ограниченной длины из входного потокаJAVA

Программисты JAVA общаются здесь
Anonymous
Лучшая практика для чтения ограниченной длины из входного потока

Сообщение Anonymous »

У меня есть пакеты, которые отправляются на розетки, которым предшествуют заголовки длины. Таким образом, каждая передача поставляется с 4 байтами информации длины, за которой следует пакет. Поэтому я должен ограничить свой read () < /code> никогда не превышать длину, чтобы я случайно не читал следующий пакет в очереди. < /P>

Код: Выделить всё

InputStream in
- это поток ввода, BytearRayoutputStream Bytestream - это поток, который я пишу входящие пакеты, и int len ​​ - длина входящей передачи.

Вот что я придумал: < /p>

for (int i = 0; i < len; i++) {
byteStream.write(in.read());
}
< /code>

Это абсолютно ужасно; Чтение байтов один за другим. Я надеялся посмотреть, есть ли лучший способ сделать это с использованием буферов (вроде как канонический способ копирования потоков).

Подробнее здесь: https://stackoverflow.com/questions/200 ... put-stream

Вернуться в «JAVA»