Шаг 90.
Язык программирования Java.
Классы FileInputStream и FileOutputStream

На этом шаге мы рассмотрим классы FileInputStream и FileOutputStream

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

FileInputStream(String pathname);
FileInputStream(File file);

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

FileInputStream f0 = new FileInputStream("/autoexec.bat")
File f = new File("autoexec.bat");
FileInputStream f1 = new FileInputStream(f);

Хотя первый конструктор, вероятно, используется чаще, второй конструктор позволяет подробно исследовать файл с помощью методов из класса File, прежде чем присоединять его в потоку ввода. Когда создается объект типа FileInputStream, определяемый им поток ввода открывается для чтения. В классе FileInputStream переопределяются шесть методов из абстрактного класса InputStream. В то же время методы mark() и reset() не переопределяются, и поэтому все попытки использовать метод reset() вместе с объектом типа FileInputStream приводят к генерированию исключения типа IOException.

В классе FileOutputStream создается объект типа OutputStream, который можно использовать для записи байтов в файл. Этот класс реализует интерфейсы AutoCloseble, Closeable и Flushable. Ниже приведены четыре наиболее часто употребляемых конструктора данного класса.

FileOutputStream(String pathname);
FileOutputStream(File file);
FileOutputStream(String pathname, boolean flag);
FileOutputStream(File file, boolean flag);

Все эти конструкторы могут сгенерировать исключение типа FileNotFoundException. Здесь pathname обозначает имя полного пути к файлу, а параметр file – объект типа File, описывающий файл. Если параметр flag принимает логическое значение true, файл открывается в режиме добавления данных, иначе создается новый файл.

Создание объекта типа FileOutputStream не зависит от того, существует ли указанный файл. Он создается перед своим открытием при построении объекта класса FileOutputStream. При попытке открыть файл, доступный только для чтения, будет сгенерировано соответствующее исключение.

На следующем шаге мы рассмотрим класс ByteArrayInputStream

Предыдущий шаг Содержание Следующий шаг