Как следует из названия, канал используется как среднее значение потока данных от одного конца к другому. Здесь в канале Java NIO действуют одинаково между буфером и объектом на другом конце, другими словами, канал используется для чтения данных в буфер, а также для записи данных из буфера.
В отличие от потоков, которые используются в традиционных каналах Java IO, они являются двухсторонними, т.е. могут считывать и записывать. Канал Java NIO поддерживает асинхронный поток данных как в режиме блокировки, так и в режиме без блокировки.
Реализации канала
Канал Java NIO реализован в основном в следующих классах —
-
FileChannel — Для чтения данных из файла мы используем файловый канал. Объект файлового канала может быть создан только путем вызова метода getChannel () для файлового объекта, поскольку мы не можем напрямую создать файловый объект.
-
DatagramChannel — канал дейтаграмм может считывать и записывать данные по сети через UDP (протокол пользовательских дейтаграмм). Объект DataGramchannel может быть создан с использованием заводских методов.
-
SocketChannel — канал SocketChannel может считывать и записывать данные по сети через TCP (протокол управления передачей). Он также использует фабричные методы для создания нового объекта.
-
ServerSocketChannel — ServerSocketChannel для чтения и записи данных через TCP-соединения, так же, как веб-сервер. Для каждого входящего соединения создается SocketChannel.
FileChannel — Для чтения данных из файла мы используем файловый канал. Объект файлового канала может быть создан только путем вызова метода getChannel () для файлового объекта, поскольку мы не можем напрямую создать файловый объект.
DatagramChannel — канал дейтаграмм может считывать и записывать данные по сети через UDP (протокол пользовательских дейтаграмм). Объект DataGramchannel может быть создан с использованием заводских методов.
SocketChannel — канал SocketChannel может считывать и записывать данные по сети через TCP (протокол управления передачей). Он также использует фабричные методы для создания нового объекта.
ServerSocketChannel — ServerSocketChannel для чтения и записи данных через TCP-соединения, так же, как веб-сервер. Для каждого входящего соединения создается SocketChannel.
пример
Следующий пример читает из текстового файла из C: /Test/temp.txt и печатает содержимое на консоль.