Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java / Лекции / lection4.pdf
Скачиваний:
69
Добавлен:
15.03.2015
Размер:
201.62 Кб
Скачать

Листинг 4.1. Копирование бинарного файла.

import java.io.*;

public class IOExample {

public static void main(String args[]) { FileInputStream in = null; FileOutputStream out = null;

int cnt = 0; try {

in = new FileInputStream("input.dat");

out = new FileOutputStream("output.dat"); int c;

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

cnt++;

}

out.flush();

} catch(FileNotFoundException e) {

System.err.println("Файл не найден."); } catch(Exception e) {

System.err.println("Исключение: " +

e.getMessage());

} finally {

System.out.println("Скопировано " + cnt + " байт."); if (in != null) {

try {

in.close();

} catch(Exception e) { System.err.println("Исключение: " +

e.getMessage());

}

}

if (out != null) { try {

out.close();

} catch(Exception e) { System.err.println("Исключение: " +

e.getMessage());

}

}

}

}

}

4.6.3. Обработка текстового файла

В листинге 4.2 представлена программа, преобразующая все символы текстового файла input.txt к верхнему регистру и записывающая их в файл output.txt.

Листинг 4.2. Обработка текстового файла.

import java.io.*;

public class IOExample {

public static void main(String args[]) { FileReader inputStream = null;

FileWriter outputStream = null; try {

inputStream = new FileReader("input.txt");

outputStream = new FileWriter("output.txt"); int c;

while ((c = inputStream.read()) != -1) { outputStream.write(Character.toUpperCase((char)c));

}

} catch(FileNotFoundException e) {

System.err.println("Файл не найден."); } catch(Exception e) {

System.err.println("Исключение: " + e.getMessage()); } finally {

if (inputStream != null) { try {

inputStream.close(); } catch(Exception e) {

System.err.println("Исключение: " + e.getMessage());

}

}

if (outputStream != null) { try {

outputStream.close(); } catch(Exception e) {

System.err.println("Исключение: " + e.getMessage());

}

}

}

}

}

4.7.Работа сфайловойсистемой

4.7.1. Класс File

Класс File предназначен для доступа к файлам и каталогам файловой системы.

 

Таблица 4.12. Некоторые конструкторы класса File.

 

 

File(File parent, String child)

Создаёт объект File на основе каталога,

 

заданного объектом File, и имени файла,

 

заданного строкой.

File(String pathname)

Создаёт объект File на основе пути к файлу.

File(String parent, String child)

Создаёт объект File на основе каталога и имени

 

файла, заданного строками.

 

Таблица 4.13. Методы класса File.

 

 

boolean exists()

Возвращает true, если файл существует.

boolean canRead()

Возвращает true, если файл доступен для

 

чтения.

boolean canWrite()

Возвращает true, если файл доступен для

 

записи.

boolean createNewFile()

Создаёт файл. Возвращает true, если создание

 

прошло успешно.

boolean mkdir()

Создаёт каталог. Возвращает true, если

 

создание прошло успешно.

boolean delete()

Удаляет файл или каталог. Возвращает true,

 

если удаление прошло успешно.

boolean renameTo(File dest)

Переименовывает файл или каталог.

 

Возвращает true, если переименование прошло

 

успешно.

boolean isDirectory()

Возвращает true, если объект File представляет

 

каталог.

boolean isFile()

Возвращает true, если объект File представляет

 

файл.

boolean isHidden()

Возвращает true, если объект File представляет

 

скрытый файл или каталог.

long lastModified()

Возвращает время последнего изменения

 

файла или каталога.

long length()

Возвращает размер файла.

File[] listFiles()

Возвращает массив объектов File,

 

представляющих файлы данного каталога.

String[] list()

Возвращает массив имён файлов данного

 

каталога.

String getAbsolutePath()

Возвращает абсолютный путь к файлу.

File getAbsoluteFile()

Возвращает объект File, представляющий

 

абсолютный путь к файлу.

String getParent()

Возвращает имя каталога, в котором находится

 

данный файл или каталог.

File getParentFile()

Возвращает объект File, представляющий

 

каталог, в котором находится данный файл или

 

каталог.

4.7.2. Пример работы с файловой системой

В листинге 4.3 представлена программа, рекурсивно перечисляющая все файлы и каталоги заданного каталога и его подкаталогов.

Листинг 4.3. Работа с файловой системой.

import java.io.*;

public class FileExample {

public static void printSubDir(File currentDir) {

System.out.println(currentDir.getAbsolutePath()); if(currentDir.isDirectory()) {

File children[] = currentDir.listFiles(); for(int i = 0; i < children.length; i++)

printSubDir(children[i]);

}

}

public static void main(String args[]) throws IOException { BufferedReader in = new BufferedReader(

new InputStreamReader(System.in));

System.out.println("Введите имя каталога:"); printSubDir(new File(in.readLine()));

}

}

Соседние файлы в папке Лекции