Spec-Zone.ru › OpenJDK 25

Класс 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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/FileInputStream.html

Spec-Zone.ru

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