Обзор класса FileInputStream в Java

Обзор класса FileInputStream в Java

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

Ниже приведены наиболее часто употребляемые конструкторы этого класса.

Каждый из них может сгенерировать исключение типа FileNotFoundException. Здесь параметр путь_к_файлу обозначает полное имя пути к файлу, а параметр объект_файла — объект типа File, описывающий файл.

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

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

Когда создается объект типа FileInputStream, определяемый им поток ввода открывается для чтения. В клас­се FileInputStream переопределяются шесть методов из абстрактного клас­са InputStream.

В то же время методы mark() и reset() не переопределяют­ся, и поэтому все попытки использовать метод reset() вместе с объектом типа FileInputStream приводят к генерированию исключения типа IOException.

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

Данная программа читает свой исходный файл, который должен присуrствовать в текущем каталоге. Обратите вниманиена то, что в данном примере используется оператор try с ресурсами для автомати­ческого закрытия файла, когда он больше не нужен.

Эта программа выводит следующий результат:

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

В приведенном выше примеру обрабатываются все исклю­чения ввода-вывода, которые могут произойти бдагодаря оператору try с ресурсами.

Интересное видео на сегодня: