Класс Channels
- java.lang.Object
-
- java.nio.channels.Channels
public final class Channels extends Object
Утилитарные методы для каналов и потоков.
Этот класс определяет статические методы, которые поддерживают взаимодействие классов потоков из пакета с классами каналов из этого пакета.java.io
- С момента:
- 1.4
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static ReadableByteChannel |
newChannel(InputStream in) Создаёт канал, который считывает байты из заданного потока. |
static WritableByteChannel |
newChannel(OutputStream out) Создаёт канал, который записывает байты в заданный поток. |
static InputStream |
newInputStream(AsynchronousByteChannel ch) Создаёт поток, который считывает байты из заданного канала. |
static InputStream |
newInputStream(ReadableByteChannel ch) Создаёт поток, который считывает байты из заданного канала. |
static OutputStream |
newOutputStream(AsynchronousByteChannel ch) Создаёт поток, который записывает байты в заданный канал. |
static OutputStream |
newOutputStream(WritableByteChannel ch) Создаёт поток, который записывает байты в заданный канал. |
static Reader |
newReader(ReadableByteChannel ch,
CharsetDecoder dec,
int minBufferCap) Создаёт чтец, который декодирует байты из заданного канала с использованием заданного декодера. |
static Reader |
newReader(ReadableByteChannel ch,
String csName) Создаёт чтец, который декодирует байты из заданного канала в соответствии с заданным кодированием символов. |
static Writer |
newWriter(WritableByteChannel ch,
CharsetEncoder enc,
int minBufferCap) Создаёт записыватель, который кодирует символы с использованием заданного кодера и записывает полученные байты в заданный канал. |
static Writer |
newWriter(WritableByteChannel ch,
String csName) Создаёт записыватель, который кодирует символы в соответствии с заданным кодированием символов и записывает полученные байты в заданный канал. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
newInputStream
public static InputStream newInputStream(ReadableByteChannel ch)
Создаёт поток, который считывает байты из заданного канала.
Методы read результирующего потока будут выбрасывать исключение IllegalBlockingModeException, если вызываются, когда основной канал находится в режиме неголосующего (non-blocking) режима. Поток не будет буферизован и не будет поддерживать методы mark или reset. Поток будет безопасен для доступа множественных потоков одновременно. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, из которого будут считываться байты - Возвращает:
- Новый входной поток
newOutputStream
public static OutputStream newOutputStream(WritableByteChannel ch)
Создаёт поток, который записывает байты в заданный канал.
Методы write результирующего потока будут выбрасывать исключение IllegalBlockingModeException, если вызываются, когда основной канал находится в режиме неголосующего (non-blocking) режима. Поток не будет буферизован. Поток будет безопасен для доступа множественных потоков одновременно. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, в который будут записываться байты - Возвращает:
- Новый выходной поток
newInputStream
public static InputStream newInputStream(AsynchronousByteChannel ch)
Создаёт поток, который считывает байты из заданного канала.
Поток не будет буферизован и не будет поддерживать методы mark или reset. Поток будет безопасен для доступа множественных потоков одновременно. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, из которого будут считываться байты - Возвращает:
- Новый входной поток
- С момента:
- 1.7
newOutputStream
public static OutputStream newOutputStream(AsynchronousByteChannel ch)
Создаёт поток, который записывает байты в заданный канал.
Поток не будет буферизован. Поток будет безопасен для доступа множественных потоков одновременно. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, в который будут записываться байты - Возвращает:
- Новый выходной поток
- С момента:
- 1.7
newChannel
public static ReadableByteChannel newChannel(InputStream in)
Создаёт канал, который считывает байты из заданного потока.
Полученный канал не будет буферизован; он просто перенаправит свои операции ввода/вывода на заданный поток. Закрытие канала приведёт к закрытию потока.
- Параметры:
-
in- Поток, из которого нужно считывать байты - Возвращает:
- Новый канал для чтения байтов
newChannel
public static WritableByteChannel newChannel(OutputStream out)
Создаёт канал, который записывает байты в заданный поток.
Полученный канал не будет буферизован; он просто перенаправит свои операции ввода/вывода на заданный поток. Закрытие канала приведёт к закрытию потока.
- Параметры:
-
out- Поток, в который нужно записывать байты - Возвращает:
- Новый канал для записи байтов
newReader
public static Reader newReader(ReadableByteChannel ch,
CharsetDecoder dec,
int minBufferCap) Создаёт чтец, который декодирует байты из заданного канала с использованием заданного декодера.
Полученный поток будет содержать внутренний буфер ввода как минимум minBufferCap байт. Методы read потока по мере необходимости будут заполнять буфер, считывая байты из основного канала; если канал находится в режиме неголосующего (non-blocking) режима при считывании байтов, будет выброшено исключение IllegalBlockingModeException. Результирующий поток не будет иначе буферизован и не будет поддерживать методы mark или reset. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, из которого будут считываться байты -
dec- Декодер кодирования символов для использования -
minBufferCap- Минимальная ёмкость внутреннего буфера байтов, или-1если будет использоваться зависящая от реализации ёмкость по умолчанию - Возвращает:
- Новый чтец
newReader
public static Reader newReader(ReadableByteChannel ch,
String csName) Создаёт чтец, который декодирует байты из заданного канала в соответствии с заданным кодированием символов.
Вызов этого метода в форме
Channels.newReader(ch, csname)ведет себя точно так же, как выражение
Channels.newReader(ch,
Charset.forName(csName)
.newDecoder(),
-1);
- Параметры:
-
ch- Канал, из которого будут считываться байты -
csName- Название кодирования символов для использования - Возвращает:
- Новый чтец
- Выбрасывает:
-
UnsupportedCharsetException- Если поддержка заданного кодирования символов недоступна в текущей виртуальной машине Java
newWriter
public static Writer newWriter(WritableByteChannel ch,
CharsetEncoder enc,
int minBufferCap) Создаёт записыватель, который кодирует символы с использованием заданного кодера и записывает полученные байты в заданный канал.
Полученный поток будет содержать внутренний буфер вывода как минимум minBufferCap байт. Методы write потока по мере необходимости будут сбрасывать буфер, записывая байты в основной канал; если канал находится в режиме неголосующего (non-blocking) режима при записи байтов, будет выброшено исключение IllegalBlockingModeException. Результирующий поток не будет иначе буферизован. Закрытие потока приведёт к закрытию канала.
- Параметры:
-
ch- Канал, в который будут записываться байты -
enc- Кодер кодирования символов для использования -
minBufferCap- Минимальная ёмкость внутреннего буфера байтов, или-1если будет использоваться зависящая от реализации ёмкость по умолчанию - Возвращает:
- Новый записыватель
newWriter
public static Writer newWriter(WritableByteChannel ch,
String csName) Создаёт записыватель, который кодирует символы в соответствии с заданным кодированием символов и записывает полученные байты в заданный канал.
Вызов этого метода в форме
Channels.newWriter(ch, csname)ведет себя точно так же, как выражение
Channels.newWriter(ch,
Charset.forName(csName)
.newEncoder(),
-1);
- Параметры:
-
ch- Канал, в который будут записываться байты -
csName- Название кодирования символов для использования - Возвращает:
- Новый записыватель
- Выбрасывает:
-
UnsupportedCharsetException- Если поддержка заданного кодирования символов недоступна в текущей виртуальной машине Java
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.