Spec-Zone.ru › OpenJDK 24

Класс 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(java.nio.file.Path, java.nio.file.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 байтов данных из потока ввода.

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

mark, markSupported, nullInputStream, readAllBytes, readNBytes, reset, skipNBytes, transferTo

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

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

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

FileInputStream

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

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

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

FileInputStream

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

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

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

FileInputStream

public FileInputStream(FileDescriptor fdObj)
Создаёт поток для чтения, используя дескриптор файла 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. Возвращается фактическое количество пропущенных байтов. Если пропуск выполняется вперёд, возвращается положительное значение. Если пропуск выполняется назад, возвращается отрицательное значение.

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

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

available

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

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

Переопределяет:
available в классе InputStream
Возвращает:
приблизительное количество оставшихся байтов, которые можно прочитать (или пропустить) из этого входного потока без блокирования.
Исключения:
IOException - если этот поток FileInputStream был закрыт вызовом 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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/FileInputStream.html

Spec-Zone.ru

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