<
УЦ Контакт

Лидер IT образования

Как приятно знать, что ты что-то узнал (Мольер)

 
03056, Киев, пер. Ковальский 13, 1-й этаж, офис №2
 
Программы курсов

Акция! Студентам - Скидка 15%! Слушателям IT Academy бесплатное посещение English Club

Статья>>Java. Ввод/Вывод. Работа с файлами

            Следует отметить что функции ввода и вывода являются ключевыми при изучении любого языка программирования , это то с чем каждый программист сталкивается на каждом шагу. Для обучение языку и базовых понятий  ввода/вывода нужно рассмотреть возможности пакета java.io .

         База знаний данной проблемы основывается на понятии потока. Поток – источник информации, или то место, куда можно направить информацию.

      Простым примером демонстрации потока является поток с двоичным представлением информации(байтами). Все потоки с двоичным представлением наследуются от двух классов InputStream и OutputStream. При обучении обратим внимание на два потомка FileInputStream и FileOutputStream соответственно. Рассмотрим пример, часть программы которая копирует содержимое одного файла в другой:

FileInputStream in = null;

FileOutputStream out = null;

try

{

 in = new FileInputStream("a.txt");

 out = new FileOutputStream("b.txt");

 int c;

 while ((c = in.read()) != -1) { out.write(c); }

} finally

{

if (in != null) { in.close(); } 

if (out != null) { out.close(); }

}

При роботе с потоками обязательным пунктом использования является закрытие всех потоков методом  close() . В данном случае содержимое файла a.txt копируется  в файл b.txt. Если файл b.txt не существует, то он будет создан или перезаписан.

      Практика показывает что зачастую используются классы  FileReader и FileWriter, которые отличаются от выше рассмотренных тем , что работают с символами. Также существуют классы BufferedReader и PrintWriter для построчного чтения и записи файла.

Пример:

BufferedReader in = null;

PrintWriter out = null;

try {

 in = new BufferedReader(new FileReader("a.txt"));

 out = new PrintWriter(new FileWriter("b.txt"));

 String l;

 while ((l = in.readLine()) != null) { out.println(l); }

} finally { ... }

В языке Java существует еще ряд классов, которые обеспечивают работу вводом/выводом информации. Для более подробного изучения обращайтесь к документации языка.


Полезные статьи