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()
Закрывает поток и выпускает любые системные ресурсы, связанные с этим.
|
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
в классе Reader
IOException
- Если ошибка ввода-вывода происходитpublic int read(char[] cbuf, int off, int len) throws IOException
Этот метод реализует общий контракт соответствия
метод read
класс. Как дополнительное удобство, это пытается считать так много символов насколько возможно, неоднократно вызывая Reader
read
метод базового потока. Это выполнило итерации read
продолжается, пока одно из следующих условий не становится истиной:
read
метод базовых потоковых возвратов -1
, указание на конец файла, или ready
метод базовых потоковых возвратов false
, указание, что далее входные запросы блокировали бы. read
по базовым потоковым возвратам -1
указать на конец файла тогда этот метод возвраты -1
. Иначе этот метод возвращает число символов фактически чтение. Подклассы этого класса поощряются, но не требуются, чтобы попытаться считать так много символов насколько возможно тем же самым способом.
Обычно этот метод берет символы от символьного буфера этого потока, заполняя это от базового потока по мере необходимости. Если, однако, буфер пуст, метка не допустима, и требуемая длина является, по крайней мере, столь же большой как буфер, то этот метод считает символы непосредственно из базового потока в данный массив. Таким образом избыточный BufferedReader
s не будет копировать данные излишне.
read
в классе 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
в классе Reader
n
- Число символов, чтобы пропуститьIllegalArgumentException
- Если n
отрицательно.IOException
- Если ошибка ввода-вывода происходитpublic boolean ready() throws IOException
ready
в классе Reader
IOException
- Если ошибка ввода-вывода происходитpublic boolean markSupported()
markSupported
в классе Reader
public void mark(int readAheadLimit) throws IOException
mark
в классе Reader
readAheadLimit
- Предел на числе символов, которые могут быть считаны, все еще сохраняя метку. Попытка сбросить поток после того, чтобы читать символы до этого предела или вне может перестать работать. Предельное значение, больше чем размер входного буфера, заставит новый буфер быть выделенным, чей размер не меньше чем предел. Поэтому большие значения должны использоваться с заботой.IllegalArgumentException
- Если readAheadLimit < 0IOException
- Если ошибка ввода-вывода происходитpublic void reset() throws IOException
reset
в классе Reader
IOException
- Если поток никогда не отмечался, или если метка была лишена законной силыpublic void close() throws IOException
Reader
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
close
в классе Reader
IOException
- Если ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.