Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class InputStream extends Object implements Closeable
Приложения, которые должны определить подкласс InputStream
должен всегда обеспечивать метод, который возвращает следующий байт ввода.
BufferedInputStream
, ByteArrayInputStream
, DataInputStream
, FilterInputStream
, read()
, OutputStream
, PushbackInputStream
Конструктор и Описание |
---|
InputStream() |
Модификатор и Тип | Метод и Описание |
---|---|
int |
available()
Возвращает оценку числа байтов, которые могут быть считаны (или перескочиться) от этого входного потока, не блокируя следующим вызовом метода для этого входного потока.
|
void |
close()
Завершения этот входной поток и выпуски любые системные ресурсы связались с потоком.
|
void |
mark(int readlimit)
Отмечает текущую позицию в этом входном потоке.
|
boolean |
markSupported()
Тесты, если этот входной поток поддерживает
mark и reset методы. |
abstract int |
read()
Читает следующий байт данных от входного потока.
|
int |
read(byte[] b)
Чтения некоторое число байтов от входного потока и хранят их в буферный массив
b . |
int |
read(byte[] b, int off, int len)
Чтения до
len байты данных от входного потока в массив байтов. |
void |
reset()
Репозиции этот поток к позиции в это время
mark метод был последним, обращался к этому входному потоку. |
long |
skip(long n)
Перескакивает и отбрасывает
n байты данных от этого входного потока. |
public abstract int read() throws IOException
int
в диапазоне 0
к 255
. Если никакой байт не доступен, потому что конец потока был достигнут, значение -1
возвращается. Этот метод блоки до входных данных доступен, конец потока обнаруживается, или исключение выдается. Подкласс должен обеспечить реализацию этого метода.
-1
если конец потока достигается.IOException
- если ошибка ввода-вывода происходит.public int read(byte[] b) throws IOException
b
. Число байтов фактически чтение возвращается как целое число. Этот метод блоки до входных данных доступен, конец файла обнаруживается, или исключение выдается. Если длина b
нуль, тогда никакие байты не читаются и 0
возвращается; иначе, есть попытка считать по крайней мере один байт. Если никакой байт не доступен, потому что поток в конце файла, значения -1
возвращается; иначе, по крайней мере один байт читается и сохранен в b
.
Первое побайтовое чтение сохранено в элемент b[0]
, следующий в b[1]
, и так далее. Число чтения байтов, самое большее, равно длине b
. Позвольте k быть числом байтов фактически чтение; эти байты будут сохранены в элементах b[0]
через b[
k-1]
, отъезд элементов b[
k]
через b[b.length-1]
незатронутый.
read(b)
метод для класса InputStream
имеет тот же самый эффект как:
read(b, 0, b.length)
b
- буфер, в который читаются данные.-1
если нет больше данных, потому что конец потока был достигнут.IOException
- Если первый байт не может быть считан ни по какой причине кроме конца файла, если входной поток был закрыт, или если некоторая другая ошибка ввода-вывода происходит.NullPointerException
- если b
null
.read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
байты данных от входного потока в массив байтов. Попытка предпринимается, чтобы читать столько, сколько len
байты, но меньшее число могут быть считаны. Число байтов фактически чтение возвращается как целое число. Этот метод блоки до входных данных доступен, конец файла обнаруживается, или исключение выдается.
Если len
нуль, тогда никакие байты не читаются и 0
возвращается; иначе, есть попытка считать по крайней мере один байт. Если никакой байт не доступен, потому что поток в конце файла, значения -1
возвращается; иначе, по крайней мере один байт читается и сохранен в b
.
Первое побайтовое чтение сохранено в элемент b[off]
, следующий в b[off+1]
, и так далее. Число чтения байтов, самое большее, равно len
. Позвольте k быть числом байтов фактически чтение; эти байты будут сохранены в элементах b[off]
через b[off+
k-1]
, отъезд элементов b[off+
k]
через b[off+len-1]
незатронутый.
В каждом случае, элементах b[0]
через b[off]
и элементы b[off+len]
через b[b.length-1]
незатронуты.
read(b,
off,
len)
метод для класса InputStream
просто вызывает метод read()
неоднократно. Если первое такой призывать результаты IOException
, то исключение возвращается из звонка read(b,
off,
len)
метод. Если любой последующий звонок read()
результаты в a IOException
, исключение поймано и обработано, как будто это был конец файла; чтение байтов до той точки сохранено в b
и число чтения байтов перед исключением произошло, возвращается. Реализация по умолчанию этого метода блоки до требуемого количества входных данных len
был считан, конец файла обнаруживается, или исключение выдается. Подклассы поощряются обеспечить более эффективную реализацию этого метода.
b
- буфер, в который читаются данные.off
- запуск смещается в массиве b
в котором пишутся данные.len
- максимальное количество байтов, чтобы читать.-1
если нет больше данных, потому что конец потока был достигнут.IOException
- Если первый байт не может быть считан ни по какой причине кроме конца файла, или если входной поток был закрыт, или если некоторая другая ошибка ввода-вывода происходит.NullPointerException
- Если b
null
.IndexOutOfBoundsException
- Если off
отрицательно, len
отрицательно, или len
больше чем b.length - off
read()
public long skip(long n) throws IOException
n
байты данных от этого входного потока. skip
метод, для множества причин, может закончить тем, что перескочил через некоторое меньшее число байтов, возможно 0
. Это может следовать из любого из многих условий; достижение конца файла прежде n
байты были пропущены, только одна возможность. Фактическое число пропущенных байтов возвращается. Если n
отрицательно, никакие байты не пропускаются. skip
метод этого класса создает байтовый массив и затем неоднократно не читает в него до n
байты были считаны, или конец потока был достигнут. Подклассы поощряются обеспечить более эффективную реализацию этого метода. Например, реализация может зависеть от возможности искать.
n
- число байтов, которые будут пропущены.IOException
- если поток не поддерживает, ищут, или если некоторая другая ошибка ввода-вывода происходит.public int available() throws IOException
Отметьте что в то время как некоторые реализации InputStream
возвратит общее количество байтов в потоке, многие не будут. Это никогда не корректно, чтобы использовать возвращаемое значение этого метода, чтобы выделить буфер, предназначенный, чтобы содержать все данные в этом потоке.
Реализация подкласса этого метода может хотеть бросать IOException
если этот входной поток был закрыт, вызывая close()
метод.
available
метод для класса InputStream
всегда возвраты 0
.
Этот метод должен быть переопределен подклассами.
0
когда это достигает конца входного потока.IOException
- если ошибка ввода-вывода происходит.public void close() throws IOException
close
метод InputStream
ничего не делает.
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
IOException
- если ошибка ввода-вывода происходит.public void mark(int readlimit)
reset
репозиции метода этот поток в последней отмеченной позиции так, чтобы последующие чтения, перечитанные те же самые байты. readlimit
параметры говорят этому входному потоку признавать, что много байтов, которые будут считаны перед позицией метки, лишаются законной силы.
Общий контракт mark
это, если метод markSupported
возвраты true
, поток так или иначе помнит все чтение байтов после звонка mark
и готов предоставлять те те же самые байты снова если и всякий раз, когда метод reset
вызывается. Однако, поток не обязан помнить любые данные вообще если больше чем readlimit
байты читаются из потока прежде reset
вызывается.
Отмечание закрытого потока не должно иметь никакого эффекта на поток.
mark
метод InputStream
ничего не делает.
readlimit
- максимальный предел байтов, которые могут быть считаны перед позицией метки, становится недопустимым.reset()
public void reset() throws IOException
mark
метод был последним, обращался к этому входному потоку. Общий контракт reset
:
markSupported
возвраты true
, тогда: mark
не был вызван, так как поток создавался, или число байтов, считанных из потока с тех пор mark
был последнее вызванный, больше чем параметр mark
при той последней возможности, затем IOException
мог бы быть брошен. IOException
не бросается, тогда поток сбрасывается к состоянию так, что все чтение байтов начиная с нового звонка mark
(или начиная с запуска файла, если mark
не был вызван), будет повторно предоставлен последующим вызывающим сторонам read
метод, сопровождаемый любыми байтами, которые иначе были бы следующими входными данными со времени звонка reset
. markSupported
возвраты false
, тогда: reset
может бросить IOException
. IOException
не бросается, тогда поток сбрасывается к фиксированному состоянию, которое зависит от определенного типа входного потока и как это создавалось. Байты, которые будут предоставлены последующим вызывающим сторонам read
метод зависит от определенного типа входного потока. Метод reset
для класса InputStream
не делает ничего кроме броска IOException
.
IOException
- если этот поток не был отмечен или если метка была лишена законной силы.mark(int)
, IOException
public boolean markSupported()
mark
и reset
методы. Действительно ли mark
и reset
поддерживаются инвариантное свойство определенного входного потокового экземпляра. markSupported
метод InputStream
возвраты false
.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.