У вас есть , чтобы использовать NIO для этого? Как правило, гораздо сложнее получить права (по крайней мере, для меня). Я предполагаю, что проблема в том, что вы всегда читаете, но вы вызываете flip
ровно один раз за чтение ... тогда как я ожидал бы увидеть два сальто или, возможно, сальто перед read
, а затем clear
в конце обработки.
Обратите внимание, что вы также полностью игнорируете bytesRead
- зачем уменьшать значение переменной, которую вы затем переназначаете, не читая?
Кроме того, вы предполагаете, что получаете точно один \r
с каждого read
вызова. Что если вы получите две строки за один вызов или одну неполную линию?
Я не квалифицирован, чтобы дать правильный код NIO, но я бы порекомендовал вам попытаться заставить его работать сначала с простым InputStream
, а затем , а затем перейти на NIO.