Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Навигация по файловой системе и вводу/выводу




Навигация по файловой системе и вводу/выводу

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

· File Class

· FileReader Class

· FileWriter Class

Каталоги в Java

В Java каталог представлен Файлом, который может содержать список других файлов и каталогов. Используя объект File, вы можете создать каталог, прокрутить список файлов, представленных в каталоге. Для получения более детальных сведений, ознакомьтесь с перечнем всех методов, которые могут быть вызваны из объекта File, будучи связанными с каталогами.

Создание каталогов

Существуют два служебных метода File, которые могут быть использованы для создания каталогов:

· Метод mkdir() позволяет создать папку в Java, возвращая значение true при успехе операции, и false в случае сбоя. Сбой свидетельствует о том, что путь указанный в объекте File уже существует, либо что каталог не может быть создан в связи с тем, что полный путь еще не существует.

· Метод mkdirs() создает каталог и все вышестоящие каталоги.

В следующем примере представлено создание папки " /java/proglang/newdir":

Пример

import java. io. File; public class CreateDirectory { public static void main(String args[]) { String nameDir = " /java/proglang/newdir"; File a = new File(nameDir);       // Создание на диске папки и всех вышестоящих каталогов a. mkdirs(); }}

Скомпилируйте и выполните следующий код для создания каталога " /java/proglang/newdir".

Примечание? Java автоматически формирует разделители пути в UNIX и Windows с учетом соглашений. При использовании косой черты (/) при работе с Java в системе Windows, производится корректное разрешение пути.

Список файлов в папке

Метод list(), представленный объектом File, может быть использован для предоставления перечня всех файлов и каталогов, имеющихся в заданной папке, в следующем виде:

Пример

import java. io. File; public class ReadDirectory { public static void main(String[] args) { File pathDir = null; String[] pathsFilesAndDir;       try {          // Создание нового объекта file    pathDir = new File(" /NetBeans 8. 2/Projects/ReadDirectory/ReadDirectory/" ); // Обязательно должен существовать указанный каталог на диске, иначе программа выдаст ошибку     // Массив файлов и папок    pathsFilesAndDir = pathDir. list();     for(String path: pathsFilesAndDir) {       // Вывод списка файлов и каталогов       System. out. println(path);     } }catch(Exception e) {    // Если произошла ошибка    e. printStackTrace(); } } }

Вследствие этого будет получен следующий результат, основанный на каталогах и файлах, доступных в вашем каталоге /NetBeans 8. 2/Projects/ReadDirectory/ReadDirectory/:

buildbuild. xmlmanifest. mfnbprojectsrcReadDirectory

 

19. 2. Java — Класс ByteArrayInputStream: конструкторы и методы

Класс ByteArrayInputStream позволяет использовать буфер в памяти как InputStream. Входным источником является массив байтов.

Конструкторы

Класс ByteArrayInputStream предоставляет следующие конструкторы.

Конструктор и описание
ByteArrayInputStream(byte [] a) Конструктор принимает байтовый массив как параметр.
ByteArrayInputStream(byte [] a, int off, int len) Конструктор принимает массив байтов и два целочисленных значения, где off – первый байт для чтения, а len – количество байтов, которые нужно cчитать.

Методы

Если используйте объект ByteArrayInputStream, то у Вас есть под рукой вспомогательные методы, которые можно использовать для чтения потока или для выполнения других операций над потоком.

Метод и описание
public int read() Метод считывает следующий байт данных из InputStream. Возвращает int как байт данных. Если это конец файла, он возвращает -1.
public int read(byte[] r, int off, int len) Метод считывает до len количество байт, начиная с off входного потока в массива. Возвращает общее количество прочитанных байтов. Если это конец файла, будет возвращен -1.
public int available() Получение количества байтов, которые могут быть прочитаны из этого потока ввода файла. Возвращает int, который получает количество прочитанных байтов.
public void mark(int read) Устанавливает текущую отмеченную позицию в потоке. Параметр возвращает максимальный предел байтов, который может быть прочитан до того, как помеченная позиция станет недействительной.
public long skip(long n) Пропускает 'n' количество байтов из потока. Возвращает фактическое количество пропущенных байтов.

 

Пример

Ниже приведен пример демонстрации классов ByteArrayInputStream и ByteArrayOutputStream.

import java. io. *; public class TestByteStream { public static void main(String args[])throws IOException { ByteArrayOutputStream outputByte = new ByteArrayOutputStream(12); while(outputByte. size()! = 5) {   outputByte. write(" hello". getBytes());       } byte a [] = outputByte. toByteArray(); System. out. println(" Вывод содержимого: " );       for(int i = 0; i < a. length; i++) {    // Вывод символов    System. out. print((char)a[i] + " " );       } System. out. println();       int b; ByteArrayInputStream inputByte = new ByteArrayInputStream(a); System. out. println(" Преобразование символов в верхний регистр: " );       for(int j = 0; j < 1; j++) {    while(( b = inputByte. read())! = -1) {       System. out. println(Character. toUpperCase((char)b));     }    inputByte. reset();       } }}

Получим следующий результат:

Вывод содержимого: h e l l o Преобразование символов в верхний регистр: HELLO

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...