Класс FileInputStream

Все реализованные интерфейсы:
Closeable, AutoCloseable
public class FileInputStream
extends InputStream

Класс FileInputStream получает входные байты из файла в файловой системе. Какие файлы доступны, зависит от среды хоста.

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

Примечание API:
Для освобождения ресурсов, используемых этим потоком, следует вызвать close() напрямую или с помощью try-with-resources. Подклассы отвечают за очистку ресурсов, полученных подклассом. Подклассы, переопределяющие finalize() для выполнения очистки, должны быть изменены для использования альтернативных механизмов очистки, таких как Cleaner, и удалить переопределенный метод finalize.
Требования к реализации:
Если этот FileInputStream был переопределен, и метод close() был переопределен, метод close() будет вызван, когда FileInputStream станет недоступным. В противном случае, как выполняется очистка ресурсов, описанная в close(), зависит от реализации.
С:
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()

Закрывает этот входной поток файла и освобождает любые системные ресурсы, связанные с потоком.

protected void finalize()

Устарело, для удаления: Этот элемент API может быть удален в будущей версии.

Метод finalize устарел и будет удален.

FileChannel getChannel()

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

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, transferTo

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

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

Конструкторы

FileInputStream

public FileInputStream(String name)
                throws FileNotFoundException

Создает FileInputStream, открывая подключение к фактическому файлу, файлу, названному именем пути name в файловой системе. Новый объект FileDescriptor создается для представления этого подключения к файлу.

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

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

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

FileInputStream

public FileInputStream(File file)
                throws FileNotFoundException

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

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

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

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

FileInputStream

public FileInputStream(FileDescriptor fdObj)

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

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

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

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

Параметры:
fdObj - дескриптор файла, который необходимо открыть для чтения.
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkRead запрещает чтение дескриптора файла.
См. также:
SecurityManager.checkRead(java.io.FileDescriptor)

Методы

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()

skip

public long skip(long n)
          throws IOException

Пропускает и отбрасывает n байт данных из потока ввода.

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

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

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

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. Не полагайтесь на окончательную обработку для вызова close; окончательная обработка ненадежна и устарела. Если требуется очистка нативных ресурсов, следует использовать другие механизмы, такие как Cleaner.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.

getFD

public final FileDescriptor getFD()
                           throws IOException

Возвращает объект FileDescriptor, который представляет соединение с фактическим файлом в файловой системе, используемой этим потоком FileInputStream.

Возвращает:
объект дескриптора файла, связанный с этим потоком.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
FileDescriptor

getChannel

public FileChannel getChannel()

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

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

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

finalize

@Deprecated(since="9",
            forRemoval=true)
protected void finalize()
                 throws IOException
Устаревший, для удаления: Этот элемент API может быть удален в будущей версии.
Метод finalize устарел и будет удален. Подклассы, переопределяющие finalize для выполнения действий по очистке, должны быть изменены для использования альтернативных механизмов очистки и удаления переопределенного метода finalize. При переопределении метода finalize, его реализация должна явно гарантировать вызов super.finalize(), как описано в Object.finalize(). См. спецификацию Object.finalize() для получения дополнительной информации о вариантах миграции.

Обеспечивает вызов метода close() этого потока ввода-вывода файла, когда на него больше нет ссылок. Метод finalize() не вызывает close() напрямую.

Переопределяет:
finalize в классе Object
Примечание API:
Для освобождения ресурсов, используемых этим потоком, следует вызвать close() непосредственно или с помощью try-with-resources.
Требования к реализации:
Если этот FileInputStream был подклассифицирован и метод close() был переопределен, метод close() будет вызван, когда FileInputStream недоступен. В противном случае, способ очистки ресурсов, описанный в close(), является специфичным для реализации.
Выбрасывает:
IOException - если произошла ошибка ввода-вывода.
См. также:
close()

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

Spec-Zone .ru
спецификации, руководства, описания, API