ФГБОУ ВПО ИрГУПС Кафедра: Информационные Системы Лабораторная работа №2.Работа с файлами. Написать программу, которая будет содержимое файла A копировать в файл B. Этапы выполнения: o o o o Открывать заданный файл и считывать его содержимое Открывать и выводить содержимое файла на экран Открывать файл и записать в него тестовую строку Открывать файл A, открывать файл B, считывать содержимое A и записывать в B. Порядок выполнения: Создать на диске I текстовый файл с расширением txt. Заполнить произвольным текстом. Создать на диске I текстовый файл с расширением doc. Заполнить произвольным текстом. Создать класс для работы с файлами. Написать метод для чтения данных из файла. Доработать метод для вывода результата чтения на экран. Написать метод для записи данных в файл. Написать программу, которая будет содержимое файла A копировать в файл B. 10.Запустить программу для файла txt. 11.Запустить программу для файла doc. 12.Оформить отчет (Задание. Блок схема. Листинг программы. Результат работы для пунктов 10, 11.) 1. 2. 3. 4. 5. 6. 7. 8. 9. Теория Необходимо подключение пакета java.io.* Запись: BufferedWriter myfile = new BufferedWriter(new FileWriter("data.txt")); myfile.write("proba pera --- проба пера"); Для записи данных используются методы write(int символ) печатает один символ в файл (обратите внимание, что тип параметра - int!) write(byte [] массив) печатает массив байтов в файл Чтение: BufferedReader myfile = new BufferedReader (new FileReader("data.txt")); System.out.println(myfile.readLine()); Для чтения данных используются методы read() читает и возвращает один символ из файла read(byte [] массив) читает и возвращает массив символов из файла Для закрытия файла есть метод close. Конструкция try служит для обеспечения выполнения совокупности действий, и отлова ошибок. try{ // действия }catch(Exception e){ System.out.println("ERROR:" + e); } Пример. public class FileWork { public void ReadFile(String filein, String fileout, int mode ){ System.out.println("Reading file " + filein + "..."); try{ BufferedReader reader = new BufferedReader(new FileReader(filein)); // откуда читаем BufferedWriter writer = new BufferedWriter(new FileWriter(fileout)); // куда пишем if(mode == 1){ // режим чтения 1 побайтный char cbuf[] = new char[40]; int l; while((l = reader.read(cbuf)) > 0){ // читаем 40 элементов файла, пока не дойдем до конца System.out.print(cbuf); // выводим прочитанное на экран writer.write(cbuf,0,l); // записываем в файл } }else{ // режим чтения построчный String line; while((line = reader.readLine()) != null){ //читаем строку пока не дойдем до конца файла System.out.println(line); // выводим прочитанное на экран writer.write(line + "\r\n"); // записываем в файл } } writer.close(); //закрываем файл }catch(Exception e){ // если были ошибки, выводим System.out.println("ERROR:" + e); } System.out.println("End reading."); } }