betacode

Руководство Java Channel

View more Tutorials:

Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Channel

Channel - это интерфейс в пакете package java.nio.channels - важный компонент в Java New IO (Java NIO). Как мы знаем, Java NIO был впервые представлен с Java 1.4 в качестве альтернативы традиционному Java IO с целью повышения производительности программ.
Channel представляет собой открытое соединение с объектом, таким как аппаратное устройство, file, socket или программные компоненты, которое способно выполнять операции IO (Input/Output). Как правило, для чтения или записи данных на устройство IO с Java NIO необходимо открыть Channel.
  • В случае считывания данных с устройств IO: Данные будут считываться из Channel в Buffer, вам просто нужно манипулировать c Buffer для обработки данных.
  • В случае записи данных на устройство IO: Вам нужно записать данные в Buffer, затем они будут переданы в Channel и записаны на устройство IO.
Buffer действует как временный контейнер данных с фиксированной емкостью (capacity), поэтому для чтения или записи всех данных на устройство IO вам придется много раз манипулировать c Buffer.
Channel vs Stream
В принципе, концепция Channel (канал) в Java NIO аналогична концепции Stream (поток) в Java IO, но с некоторыми отличиями:
  • Вы можете как читать, так и записывать на Channel. В то время как в Stream для чтения вам нужен InputStream, для записи вам нужен OutputStream.
  • Channel может считываться и записываться асинхронно.
  • Channel и Buffer имеют связь друг с другом. Вам просто нужно манипулировать с Buffer для обработки данных, считанных с Channel, и манипулировать сBuffer для записи данных в Channel.

2- Interfaces and Classes

Иерархия интерфейса в пакете java.nio.channels.
Список классов, реализующих interface Channel:
  • AsynchronousFileChannel
  • AsynchronousServerSocketChannel
  • AsynchronousSocketChannel
  • DatagramChannel
  • FileChannel
  • Pipe.SinkChannel
  • Pipe.SourceChannel
  • SctpChannel
  • SctpMultiChannel
  • SctpServerChannel
  • SelectableChannel
  • ServerSocketChannel
  • SocketChannel

3- Examples

Если вы начинаете изучать Java Channel, пожалуйста, продолжайте использовать ReadableByteChannel и WritableByteChannel для первых примеров.

View more Tutorials:

Maybe you are interested

Это онлайн курс вне вебсайта o7planning, который мы представляем, он включает бесплатные курсы или курсы со скидкой.