Метод ChannelBufferInputStream.available ():
@Override
public int available() throws IOException {
return endIndex - buffer.readerIndex();
}
Разве это не прервется, если вы запишете в буфер после инициализации входного потока?
Не должно ли это быть на самом деле
return buffer.writerIndex() - buffer.readerIndex();
Я пытаюсь сделать что-то вроде этого:
Инициализируйте буферы и потоки и читайте / записывайте в ChannelBuffer. Что мне здесь не хватает?
final ChannelBuffer _channelBuffer = ChannelBuffers.dynamicBuffer();
final ChannelBufferOutputStream _outputStream = new ChannelBufferOutputStream(_channelBuffer);
final ChannelBufferInputStream _inputStream = new ChannelBufferInputStream(_channelBuffer);
Edit:
Согласно документации конструктора ChannelBufferedInputStream: «Создает новый поток, который считывает данные из указанного буфера, начиная с текущего readerIndex и заканчивая текущим writerIndex».
В таком случае это имеет смысл. Но есть ли способ достичь того, что я пытаюсь сделать? Имейте единственный резервный буфер, и операция чтения ожидает завершения операции записи.