Spec-Zone.ru › OpenJDK 27

Класс FileInputStream

java.lang.Object
java.io.InputStream
java.io.FileInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class FileInputStream extends InputStream
Объект FileInputStream получает входные байты из файла в файловой системе. Доступность файлов зависит от среды хоста.

FileInputStream предназначен для чтения потоков необработанных байтов, например данных изображения. Для чтения потоков символов рассмотрите возможность использования FileReader.

Примечание к API:
Для освобождения ресурсов, используемых этим потоком, следует вызвать метод close() напрямую либо использовать оператор try-with-resources.
Требования к реализации:
Подклассы отвечают за очистку ресурсов, полученных подклассом. Подклассам, которым необходимо очищать ресурсы после того, как поток станет недостижимым, следует использовать Cleaner или другой механизм.
С версии:
1.0
См. также:
  • File
  • FileDescriptor
  • FileOutputStream
  • Files.newInputStream(Path, OpenOption...)

Краткое описание конструкторов

Конструктор Описание
FileInputStream(File file)
Создает FileInputStream для чтения существующего файла, представленного объектом File file.
FileInputStream(FileDescriptor fdObj)
Создает FileInputStream с использованием дескриптора файла fdObj, представляющего существующее подключение к реальному файлу в файловой системе.
FileInputStream(String name)
Создает FileInputStream для чтения существующего файла с именем пути name.

Краткое описание методов

Модификатор и тип Метод Описание
int available()
Возвращает оценку количества оставшихся байтов, которые можно прочитать (или пропустить) из этого входного потока без блокировки при следующем вызове метода для этого потока.
void close()
Закрывает этот файловый входной поток и освобождает все системные ресурсы, связанные с ним.
FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим файловым входным потоком.
final FileDescriptor getFD()
Возвращает объект FileDescriptor, представляющий подключение к реальному файлу в файловой системе, используемому этим FileInputStream.
int read()
Читает байт данных из этого входного потока.
int read(byte[] b)
Читает не более b.length байтов данных из этого входного потока в массив байтов.
int read(byte[] b, int off, int len)
Читает не более len байтов данных из этого входного потока в массив байтов.
byte[] readNBytes(int len)
Читает из входного потока не более указанного количества байтов.
long skip(long n)
Пропускает и отбрасывает n байтов данных из входного потока.

Методы, объявленные в классе InputStream

mark, markSupported, nullInputStream, readAllBytes, readNBytes, reset, skipNBytes, transferTo
Модификатор и тип Метод Описание
void mark(int readlimit)
Отмечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает байты.
byte[] readAllBytes()
Считывает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Считывает из входного потока указанное количество байтов в заданный массив байтов.
void reset()
Перемещает этот поток в позицию, соответствующую моменту последнего вызова метода mark для этого входного потока.
void skipNBytes(long n)
Пропускает и отбрасывает из этого входного потока ровно n байтов данных.
long transferTo(OutputStream out)
Считывает все байты из этого входного потока и записывает их в заданный выходной поток в том же порядке, в котором они были прочитаны.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Определяет, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

FileInputStream

public FileInputStream(String name) throws FileNotFoundException
Создает FileInputStream для чтения существующего файла с именем пути name. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Создается новый объект FileDescriptor для представления этого файлового подключения.

Если файл с указанным именем не существует, является каталогом, а не обычным файлом, либо по какой-либо другой причине не может быть открыт для чтения, генерируется исключение FileNotFoundException.

Параметры:
name — зависящее от системы имя файла.
Исключения:
FileNotFoundException — если файл не существует, является каталогом, а не обычным файлом, либо по какой-либо другой причине не может быть открыт для чтения.

FileInputStream

public FileInputStream(File file) throws FileNotFoundException
Создает FileInputStream для чтения существующего файла, представленного объектом File file. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Создается новый объект FileDescriptor для представления этого файлового подключения.

Если файл с указанным именем не существует, является каталогом, а не обычным файлом, либо по какой-либо другой причине не может быть открыт для чтения, генерируется исключение FileNotFoundException.

Параметры:
file — файл, который необходимо открыть для чтения.
Исключения:
FileNotFoundException — если файл не существует, является каталогом, а не обычным файлом, либо по какой-либо другой причине не может быть открыт для чтения.
См. также:
  • File.getPath()

FileInputStream

public FileInputStream(FileDescriptor fdObj)
Создает FileInputStream с использованием дескриптора файла fdObj, представляющего существующее подключение к реальному файлу в файловой системе.

Если fdObj имеет значение null, генерируется исключение NullPointerException.

Этот конструктор не генерирует исключение, если fdObj является invalid. Однако при вызове методов результирующего потока для выполнения операций ввода-вывода в потоке генерируется исключение IOException.

Параметры:
fdObj — дескриптор файла, который необходимо открыть для чтения.

Подробное описание методов

read

public int read() throws IOException
Читает байт данных из этого входного потока. Если входные данные пока недоступны, метод блокируется.
Определен в:
read в классе InputStream
Возвращает:
следующий байт данных или -1, если достигнут конец файла.
Исключения:
IOException — если произошла ошибка ввода-вывода.

read

public int read(byte[] b) throws IOException
Читает не более b.length байтов данных из этого входного потока в массив байтов. Метод блокируется до появления входных данных.
Переопределяет:
read в классе InputStream
Параметры:
b — буфер, в который считываются данные.
Возвращает:
общее количество байтов, считанных в буфер, или -1, если данные закончились из-за достижения конца файла.
Исключения:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • InputStream.read(byte[], int, int)

read

public int read(byte[] b, int off, int len) throws IOException
Читает не более len байтов данных из этого входного потока в массив байтов. Если len не равно нулю, метод блокируется до появления входных данных; в противном случае байты не считываются и возвращается 0.
Переопределяет:
read в классе InputStream
Параметры:
b — буфер, в который считываются данные.
off — начальное смещение в массиве b, по которому записываются данные.
len — максимальное количество байтов для чтения.
Возвращает:
общее количество байтов, считанных в буфер, или -1, если данные закончились из-за достижения конца потока.
Исключения:
NullPointerException — если b равно null.
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off
IOException — если произошла ошибка ввода-вывода.
См. также:
  • InputStream.read()

readNBytes

public byte[] readNBytes(int len) throws IOException
Описание скопировано из класса: InputStream
Считывает из входного потока не более указанного количества байтов. Метод блокируется до тех пор, пока не будет считано запрошенное количество байтов, не будет обнаружен конец потока или не будет выброшено исключение. Этот метод не закрывает входной поток.

Длина возвращаемого массива равна количеству байтов, считанных из потока. Если len равно нулю, байты не считываются и возвращается пустой массив байтов. В противном случае из потока считывается не более len байтов. Если достигнут конец потока, может быть считано меньше len байтов.

После достижения этим потоком конца последующие вызовы этого метода будут возвращать пустой массив байтов.

Следует учитывать, что этот метод предназначен для простых случаев, когда удобно считать указанное количество байтов в массив байтов. Общий объем памяти, выделяемой этим методом, пропорционален количеству байтов, считанных из потока, и ограничен значением len. Поэтому метод можно безопасно вызывать с очень большими значениями len при наличии достаточного объема памяти.

Поведение в случае асинхронного закрытия входного потока или прерывания потока во время чтения в значительной степени зависит от конкретного входного потока и поэтому не определено.

Если при чтении из входного потока возникает ошибка ввода-вывода, она может возникнуть после считывания некоторых, но не всех байтов. В результате входной поток может не достичь конца и перейти в несогласованное состояние. Настоятельно рекомендуется незамедлительно закрыть поток при возникновении ошибки ввода-вывода.

Переопределяет:
readNBytes в классе InputStream
Параметры:
len — максимальное количество байтов для чтения
Возвращает:
массив байтов, содержащий байты, считанные из этого входного потока
Исключения:
IOException — если произошла ошибка ввода-вывода
С версии:
11

skip

public long skip(long n) throws IOException
Пропускает и отбрасывает n байтов данных из входного потока.

По разным причинам метод skip может пропустить меньшее количество байтов, возможно, 0. Если n отрицательно, метод попытается пропустить данные в обратном направлении. Если файл, лежащий в основе потока, не поддерживает обратное перемещение из текущей позиции, генерируется исключение IOException. Возвращается фактическое количество пропущенных байтов. При перемещении вперед возвращается положительное значение. При перемещении назад возвращается отрицательное значение.

Этот метод может пропустить больше байтов, чем осталось в файле, лежащем в основе потока. Это не приводит к исключению, а количество пропущенных байтов может включать байты, расположенные за концом файла (EOF). Попытка чтения из потока после пропуска конца файла приведет к возврату значения -1, указывающего на конец файла.

Переопределяет:
skip в классе InputStream
Параметры:
n — количество байтов, которые необходимо пропустить.
Возвращает:
фактическое количество пропущенных байтов.
Исключения:
IOException — если n отрицательно, поток не поддерживает поиск или произошла ошибка ввода-вывода.
См. также:
  • InputStream.skipNBytes(long)

available

public int available() throws IOException
Возвращает оценку количества оставшихся байтов, которые можно прочитать (или пропустить) из этого входного потока без блокировки при следующем вызове метода для этого потока. Возвращает 0, если позиция в файле находится за его концом (EOF). Следующий вызов может быть выполнен тем же или другим потоком. Чтение или пропуск такого количества байтов за один раз не приведет к блокировке, однако фактически может быть прочитано или пропущено меньшее количество байтов.

В некоторых случаях неблокирующее чтение (или пропуск) может выглядеть заблокированным, хотя на самом деле оно просто выполняется медленно, например при чтении больших файлов по медленной сети.

Переопределяет:
available в классе InputStream
Возвращает:
оценку количества оставшихся байтов, которые можно прочитать (или пропустить) из этого входного потока без блокировки.
Исключения:
IOException — если этот файловый входной поток был закрыт вызовом close или произошла ошибка ввода-вывода.

close

public void close() throws IOException
Закрывает этот файловый входной поток и освобождает все системные ресурсы, связанные с ним.

Если с этим потоком связан канал, он также закрывается.

Определен в:
close в интерфейсе AutoCloseable
Определен в:
close в интерфейсе Closeable
Переопределяет:
close в классе InputStream
Примечание к API:
Переопределение close() для выполнения действий по очистке надежно только при прямом вызове или вызове посредством try-with-resources.
Требования к реализации:
Подклассам, которым необходимо очищать ресурсы после того, как поток станет недостижимым, следует использовать механизм Cleaner.

Если с этим потоком связан канал, данный метод закроет канал, который, в свою очередь, закроет этот поток. Подклассы, переопределяющие этот метод, должны быть готовы к возможному повторному входу в метод.

Исключения:
IOException — если произошла ошибка ввода-вывода.

getFD

public final FileDescriptor getFD() throws IOException
Возвращает объект FileDescriptor, представляющий подключение к реальному файлу в файловой системе, используемому этим FileInputStream.
Возвращает:
объект дескриптора файла, связанный с этим потоком.
Исключения:
IOException — если произошла ошибка ввода-вывода.
См. также:
  • FileDescriptor

getChannel

public FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим файловым входным потоком.

Начальная position возвращаемого канала будет равна количеству байтов, уже считанных из файла. Чтение байтов из этого потока увеличивает позицию канала. Изменение позиции канала — явно или посредством чтения — изменяет позицию файла для этого потока.

Возвращает:
файловый канал, связанный с этим файловым входным потоком
С версии:
1.4

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API