Spec-Zone.ru › OpenJDK 21

Класс FileInputStream

java.lang.Object
java.io.InputStream
java.io.FileInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class FileInputStream extends InputStream
A 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 байтов данных из этого потока ввода в массив байтов.
long skip(long n)
Пропускает и отбрасывает n байтов данных из потока ввода.

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

mark, markSupported, nullInputStream, readAllBytes, readNBytes, 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
Создаёт FileInputStream путём открытия соединения с фактическим файлом, файлом с именем, заданным именем пути name в файловой системе. Новый объект FileDescriptor создаётся для представления этого соединения с файлом.

Сначала, если существует менеджер безопасности, вызывается его метод checkRead с аргументом name.

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

Parameters:
name - имя файла в зависимости от системы.
Throws:
FileNotFoundException - если файл не существует, является каталогом, а не обычным файлом, или по какой-либо другой причине не может быть открыт для чтения.
SecurityException - если существует менеджер безопасности и его метод checkRead запрещает доступ для чтения к файлу.
See Also:
  • SecurityManager.checkRead(java.lang.String)

FileInputStream

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

Сначала, если существует менеджер безопасности, вызывается его метод checkRead с путём, представленным аргументом file.

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

Parameters:
file - файл, который должен быть открыт для чтения.
Throws:
FileNotFoundException - если файл не существует, является каталогом, а не обычным файлом, или по какой-либо другой причине не может быть открыт для чтения.
SecurityException - если существует менеджер безопасности и его метод checkRead запрещает доступ для чтения к файлу.
See Also:
  • File.getPath()
  • SecurityManager.checkRead(java.lang.String)

FileInputStream

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

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

Если fdObj равно null, то выброшено исключение NullPointerException.

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

Parameters:
fdObj - дескриптор файла, который должен быть открыт для чтения.
Throws:
SecurityException - если существует менеджер безопасности и его метод checkRead запрещает доступ для чтения к дескриптору файла.
See Also:
  • SecurityManager.checkRead(java.io.FileDescriptor)

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

read

public int read() throws IOException
Читает байт данных из этого потока ввода. Этот метод блокируется, если входные данные ещё недоступны.
Specified by:
read в классе InputStream
Returns:
следующий байт данных или -1, если достигнут конец файла.
Throws:
IOException - если произошла ошибка ввода-вывода.

read

public int read(byte[] b) throws IOException
Читает до b.length байт данных из этого потока ввода в массив байтов. Этот метод блокируется, пока доступны входные данные.
Overrides:
read в классе InputStream
Parameters:
b - буфер, в который считываются данные.
Returns:
общее количество считанных байтов в буфер или -1, если больше нет данных, так как достигнут конец файла.
Throws:
IOException - если произошла ошибка ввода-вывода.
See Also:
  • InputStream.read(byte[], int, int)

read

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

skip

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

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

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

Overrides:
skip в классе InputStream
Parameters:
n - количество байтов для пропуска.
Returns:
фактическое количество пропущенных байтов.
Throws:
IOException - если n отрицательно, если поток не поддерживает поиск, или если произошла ошибка ввода-вывода.
See Also:
  • InputStream.skipNBytes(long)

available

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

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

Overrides:
available в классе InputStream
Returns:
оценка количества оставшихся байтов, которые можно прочитать (или пропустить) из этого потока ввода без блокировки.
Throws:
IOException - если этот поток ввода-вывода был закрыт вызовом close или произошла ошибка ввода-вывода.

close

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

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

Specified by:
close в интерфейсе AutoCloseable
Specified by:
close в интерфейсе Closeable
Overrides:
close в классе InputStream
API Note:
Переопределение close() для выполнения действий по очистке надёжно только при прямом вызове или при вызове с помощью try-with-resources.
Implementation Requirements:
Подклассы, требующие, чтобы очистка ресурсов происходила после того, как поток станет недоступным, должны использовать механизм Cleaner.

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

Throws:
IOException - если произошла ошибка ввода-вывода.

getFD

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

getChannel

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

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/io/FileInputStream.html

Spec-Zone.ru

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