Пять уроков по Java

       

FileInputStream и FileOutputStream


Большинству программистов не просто оперировать сравнительно новым понятием "потоки". Однако два класса - FileInputStream и FileOutputStream - обычно понятны всем, поскольку это ни что иное, как потоки ввода из файла и вывода в него. Мы начнем с рассмотрения FileInputStream. Это довольно универсальный класс, открывающий поток ввода по имени файла. Замечательной особенностью этого класса можно считать возможность создания потока ввода данных по объекту класса File и файловому дескриптору FileDescriptor. Вот, оказывается, какое у этих двух классов применение!

Второй класс, FileOutputStream, служит для записи данных в файл и во многом схож с FileInputStream. Объекты класса FileOutputStream также создаются по имени файла или по объектам File или FileDescriptor. Вот так выглядит простейшая программа на языке Java, копирующая содержимое одного файла в другой файл:

import java.io.*; class CopyFile { public static void main (String[] args) { try { File inFile = new File("infile.dat"); File outFile = new File("outfile.dat"); FileInputStream inStream = new FileInputStream(inFile); FileOutputStream outStream = new FileOutputStream(outFile);

int c; while ((c = inStream.read()) != -1) { outStream.write(c); } inStream.close(); outStream.close(); } catch (FileNotFoundException ex) {} } }

В данном случае мы использовали метод создания потоков с промежуточными объектами класса File как пример использования, но ничего не мешает сделать это более простым способом:

FileInputStream inStream = new FileInputStream("infile.dat"); FileOutputStream outStream = new FileOutputStream("outfile.dat");

Результат будет одним и тем же - будут созданы файловые потоки infile.dat и outfile.dat.



Содержание раздела