Чтение онлайн

на главную - закладки

Жанры

Основы программирования на Java

Сухов С. А.

Шрифт:

p(fl.canRead ? "можно читать" : "нельзя читать");

p("is" + ("Директория? "+fl ,isDirectory ? "да": " нет");

p(fl.isFile ? "обычный файл" : "не обычный файл");

р("Последняя модификация файла:" + fl. lastModified);

р("Размер файла:" + fl.length + " Bytes");

}

}

При запуске этой программы вы получите:

Имя файла: COPYRIGHT

Путь: /java/COPYRIGHT

Полный
путь:/Java/COPYRIGHT

Родительский каталог:/java

существует

можно записывать

можно читать

Директория? нет

обычный файл

is absolute

Последняя модификация файла:812465204000

Размер файла:695 Bytes

Существует также несколько сервисных методов, использование которых ограничено обычными файлами (их нельзя применять к каталогам). Метод renameTo(File dest) переименовывает файл (нельзя переместить файл в другой каталог). Метод delete уничтожает дисковый файл. Этот метод может удалять только обычные файлы, каталог, даже пустой, с его помощью удалить не удаётся.

11.2. Каталоги

Каталоги — это объекты класса File, в которых содержится список других файлов и каталогов. Если File ссылается на каталог, его метод isDirectoiy возвращает значение true. В этом случае вы можете вызвать метод list и извлечь содержащиеся в объекте имена файлов и каталогов. В очередном примере показано, как с помощью метода list можно просмотреть содержимое каталога.

import j ava.io.File;

class DirList {

public static void main(String args[]) {

String dirname = "/java"; // имя каталога

File fl = new File(dirname);

if (fLisDirectory) {

// является ли fl каталогом

System.out.println("Directory of' + dirname);

String s[]=fl.list;

for (int i=0; i < s.length; i++) {

File f = new File(dirname + "/" + s[i]);

if(fisDiiectory)

{

// является ли f каталогом

System.out.println(s[i] +” is a directory"):

}

else {

System.out.println(s[i] + " is a file");

}

}

}

else {

System.out.println(dirname + " is not a directory");

}

}

}

В процессе работы эта программа вывела содержимое каталога /java моего персонального

компьютера в следующем виде:

С:\> java DirList

Directory of /java

bin is a directory COPYRIGHT is a file

README is a file

11.3. Класс InputStream

InputStream — абстрактный класс, задающий используемую в Java модель входных потоков. Все методы этого класса при возникновении ошибки возбуждают исключение IOException. Ниже приведен краткий обзор методов класса InputStream.

1. read - возвращает представление очередного доступного символа во входном потоке в виде целого;

2. read(byte b[]) - пытается прочесть максимум b.length байтов из входного потока в массив b. Возвращает количество байтов, в действительности прочитанных из потока;

3. read(byte b[], int off, int len) - пытается прочесть максимум len байтов, расположив их в массиве Ь, начиная с элемента off. Возвращает количество реально прочитанных байтов;

4. skip(long n) - пытается пропустить во входном потоке n байтов. Возвращает количество пропущенных байтов;

5. available - возвращает количество байтов, доступных для чтения в настоящий момент;

6. close - закрывает источник ввода. Последующие попытки чтения из этого потока приводят к возбуждению IOException. 11.4. Класс OutputStream

Как и InputStream, OutputStream — абстрактный класс. Он задает модель выходных потоков Java. Все методы этого класса имеют тип void и возбуждают исключение IOException в случае ошибки. Ниже приведен список методов этого класса:

1. write(int b) записывает один байт в выходной поток. Обратите внимание, что аргумент этого метода имеет тип int, что позволяет вызывать write, передавая ему выражение, при этом не нужно выполнять приведение его типа к byte;

2. write(byte b[]) записывает в выходной поток весь указанный массив байтов;

3. write(byte b[], int off, int len) записывает в поток часть массива — len байтов, начиная с элемента b[off];

4. flush очищает любые выходные буферы, завершая операцию вывода;

5. close закрывает выходной поток. Последующие попытки записи в этот поток будут возбуждать IOException.

11.5. Файловый поток FilelnputStream

Класс FilelnputStream используется для ввода данных из файлов. В приведенном ниже примере создается два объекта этого класса, использующие один и тот же дисковый файл.

InputStream f0 = new FileInputStream(“/autoexec.bat");

File f = new File("/autoexec.bat"):

InputStream f1 = new FilelnputStream(f);

Когда создается объект класса FilelnputStream, он одновременно с этим открывается для чтения. FilelnputStream замещает шесть методов абстрактного класса InputStream. В приведенном ниже примере показано, как можно читать одиночные байты, массив байтов и поддиапазон массива байтов. В этом примере также показано, как методом available можно узнать, сколько еще осталось непрочитанных байтов и как с помощью метода skip можно пропустить те байты, которые вы не хотите читать,

Поделиться:
Популярные книги

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Размышления русского боксёра в токийской академии Тамагава, 2

Афанасьев Семён
2. Размышления русского боксёра в токийской академии
Фантастика:
альтернативная история
5.80
рейтинг книги
Размышления русского боксёра в токийской академии Тамагава, 2

Искатель 4

Шиленко Сергей
4. Валинор
Фантастика:
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Искатель 4

Адвокат Империи 8

Карелин Сергей Витальевич
8. Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
фантастика: прочее
попаданцы
5.00
рейтинг книги
Адвокат Империи 8

Последний Герой. Том 2

Дамиров Рафаэль
2. Последний герой
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Последний Герой. Том 2

Личный аптекарь императора. Том 6

Карелин Сергей Витальевич
6. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 6

Имя нам Легион. Том 14

Дорничев Дмитрий
14. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
фантастика: прочее
5.00
рейтинг книги
Имя нам Легион. Том 14

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

Великий род

Сай Ярослав
3. Медорфенов
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великий род

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер

На границе империй. Том 10. Часть 9

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 9

Император Пограничья 8

Астахов Евгений Евгеньевич
8. Император Пограничья
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 8

Огненный князь 2

Машуков Тимур
2. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 2