Spec-Zone .ru
спецификации, руководства, описания, API
|
public class BufferedReader extends Reader
Размер буфера может быть определен, или размер значения по умолчанию может использоваться. Значение по умолчанию является достаточно большим в большинстве целей.
Вообще, каждая просьба чтения, сделанная из Читателя, заставляет соответствующий запрос чтения быть обращенным к базовому символьному или потоку байтов. Поэтому желательно обернуть BufferedReader вокруг любого Читателя, чей считанный () операции могут быть дорогостоящими, такими как FileReaders и InputStreamReaders. Например,
BufferedReader in = new BufferedReader(new FileReader("foo.in"));буферизует ввод от указанного файла. Без буферизации каждый вызов чтения () или readLine () мог заставить байты быть считанными из файла, преобразовал в символы, и затем возвратился, который может быть очень неэффективным.
Программы, которые используют DataInputStreams для текстового ввода, могут быть локализованы, заменяя каждый DataInputStream с соответствующим BufferedReader.
FileReader
, InputStreamReader
, Files.newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)
блокировка
Конструктор и Описание |
---|
BufferedReader(Reader in)
Создает поток ввода символов буферизации, который использует входной буфер размера значения по умолчанию.
|
BufferedReader(Reader in, int sz)
Создает поток ввода символов буферизации, который использует входной буфер указанного размера.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
close()
Закрывает поток и выпускает любые системные ресурсы, связанные с этим.
|
Stream<String> |
lines()
Возвраты a
Stream , элементы которого являются строками, считанными из этого BufferedReader . |
void |
mark(int readAheadLimit)
Отмечает нынешнее положение в потоке.
|
boolean |
markSupported()
Говорит, поддерживает ли этот поток метку () работа, которую это делает.
|
int |
read()
Читает единственный символ.
|
int |
read(char[] cbuf, int off, int len)
Символы чтений в часть массива.
|
Строка |
readLine()
Читает строку текста.
|
boolean |
ready()
Говорит, готов ли этот поток быть считанным.
|
void |
reset()
Сбрасывает поток к новой метке.
|
long |
skip(long n)
Символы пропусков.
|
public BufferedReader(Reader in, int sz)
in
- Читательsz
- Входной размер буфераIllegalArgumentException
- Если sz <= 0public BufferedReader(Reader in)
in
- Читательpublic int read() throws IOException
read
в class Reader
IOException
- Если ошибка ввода-вывода происходитpublic int read(char[] cbuf, int off, int len) throws IOException
Этот метод реализует общий контракт соответствия
метод read
class. Как дополнительное удобство, это пытается считать так много символов насколько возможно, неоднократно вызывая Reader
read
метод базового потока. Это выполнило итерации read
продолжается, пока одно из следующих условий не становится истиной:
read
метод базовых потоковых возвратов -1
, указание на конец файла, или ready
метод базовых потоковых возвратов false
, указание, что далее входные запросы блокировали бы. read
по базовым потоковым возвратам -1
указать на конец файла тогда этот метод возвраты -1
. Иначе этот метод возвращает число символов фактически чтение. Подклассы этого class поощряются, но не требуются, чтобы попытаться считать так много символов насколько возможно тем же самым способом.
Обычно этот метод берет символы от символьного буфера этого потока, заполняя это от базового потока по мере необходимости. Если, однако, буфер пуст, метка не допустима, и требуемая длина является, по крайней мере, столь же большой как буфер, то этот метод считает символы непосредственно из базового потока в данный массив. Таким образом избыточный BufferedReader
s не будет копировать данные излишне.
read
в class Reader
cbuf
- Целевой буферoff
- Смещение, при котором можно начать хранить символыlen
- Максимальное количество символов, чтобы читатьIOException
- Если ошибка ввода-вывода происходитpublic String readLine() throws IOException
IOException
- Если ошибка ввода-вывода происходитFiles.readAllLines(java.nio.file.Path, java.nio.charset.Charset)
public long skip(long n) throws IOException
skip
в class Reader
n
- Число символов, чтобы пропуститьIllegalArgumentException
- Если n
отрицательно.IOException
- Если ошибка ввода-вывода происходитpublic boolean ready() throws IOException
ready
в class Reader
IOException
- Если ошибка ввода-вывода происходитpublic boolean markSupported()
markSupported
в class Reader
public void mark(int readAheadLimit) throws IOException
mark
в class Reader
readAheadLimit
- Предел на числе символов, которые могут быть считаны, все еще сохраняя метку. Попытка сбросить поток после того, чтобы читать символы до этого предела или вне может перестать работать. Предельное значение, больше чем размер входного буфера, заставит новый буфер быть выделенным, чей размер не меньше чем предел. Поэтому большие значения должны использоваться с заботой.IllegalArgumentException
- Если readAheadLimit < 0IOException
- Если ошибка ввода-вывода происходитpublic void reset() throws IOException
reset
в class Reader
IOException
- Если поток никогда не отмечался, или если метка была лишена законной силыpublic void close() throws IOException
Reader
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
close
в class Reader
IOException
- Если ошибка ввода-вывода происходитpublic Stream<String> lines()
Stream
, элементы которого являются строками, считанными из этого BufferedReader
. Stream
лениво заполняется, то есть, только для чтения происходит во время терминальной операции с потоками. На читателе нельзя управлять во время выполнения терминальной операции с потоками. Иначе, результат терминальной операции с потоками неопределен.
После выполнения терминальной операции с потоками там не гарантии, что читатель будет в определенной позиции, из которой можно считать следующий символ или строку.
Если IOException
бросается, получая доступ к базовому BufferedReader
, это обертывается в UncheckedIOException
который будет брошен от Stream
метод, который заставил чтение иметь место. Этот метод возвратит Поток если вызвано на BufferedReader, который закрывается. Любая работа на том потоке требует чтения из BufferedReader после того, как закрытое, заставит UncheckedIOException быть брошенным.
Stream<String>
обеспечение строк текста описывается этим BufferedReader
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92