Java чтение и запись в файл. Класс File. Работа с файлами и каталогами. Поток FileOutputStream – создание и запись файла

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

Какие проблемы мы будем решать в этом уроке?

Подготовительные работы

Создадим простой проект, не обязательно Maven проект, так как нам не потребуется не каких дополнительных библиотек.

Чтение, запись и создание файлов

На этой странице обсуждаются детали чтения, записи, создания и открытия файлов. Примечание. Методы создания нового файла позволяют указать необязательный набор начальных атрибутов для файла. На странице «Управление метаданными» описаны атрибуты файлов и способы их доступа и установки.

Обычно используемые методы для небольших файлов

Эта страница содержит следующие темы.

Чтение всех байтов или строк из файла

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

После того как вы создали проект, создайте класс WorkInFile.java и напишите туда стандартную конструкцию main:

Public static void main(String args){ //тут будем вызывать наши методы }

Теперь создадим класс который будет иметь методы для работы с файлами, а назовем его FileWorker.java все методы в нем которые не есть private будут для того чтобы мы получали к ним доступ без экземпляра этого класса.

Запись всех байтов или строк в файл

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

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

Как записывать в файл?

В классе FileWorker.java создадим который будет осуществлять запись в файл и назовем этот метод write (String text ; String nameFile ):

Public static void write(String fileName, String text) { //Определяем файл File file = new File(fileName); try { //проверяем, что если файл не существует то создаем его if(!file.exists()){ file.createNewFile(); } //PrintWriter обеспечит возможности записи в файл PrintWriter out = new PrintWriter(file.getAbsoluteFile()); try { //Записываем текст у файл out.print(text); } finally { //После чего мы должны закрыть файл //Иначе файл не запишется out.close(); } } catch(IOException e) { throw new RuntimeException(e); } }

Методы для каналов и байтовых буферов

Если файл существует, он усекается. В следующем примере открывается файл журнала. Если файл не существует, он создается. Если файл существует, он открывается для добавления. Интерфейс обеспечивает базовые функции чтения и записи. Возможность перемещения в разные точки в файле, а затем чтение или запись в это место делает возможным произвольный доступ к файлу. Файлы случайного доступа для получения дополнительной информации. С файловой системой по умолчанию вы можете использовать этот доступный байтовый канал для обеспечения доступа к более продвинутым функциям, таким образом отображая область файла непосредственно в память для быстрого доступа, блокируя область файла, чтобы другие процессы не могли получить к ней доступ, или чтение и записывать байты из абсолютного положения, не влияя на текущую позицию канала.

Обратите особое внимание на то, что после записи каких либо данных в файл мы должны его закрыть, только после этого действия данные запишутся в файл.

Private static String text = "This new text \nThis new text2\nThis new text3\nThis new text4\n"; private static String fileName = "C://blog/a.txt"; public static void main(String args) throws FileNotFoundException { //Запись в файл FileWorker.write(fileName, text); }

После чего мы получим новый файл «a.txt » со следующим содержимым:

Способы создания регулярных и временных файлов

Если ни один из этих параметров не указан, канал открывается для чтения. Следующий фрагмент кода считывает файл и печатает его на стандартный вывод. Этот код создает файл журнала или добавляется к файлу журнала, если он уже существует. Вы можете создать пустой файл с начальным набором атрибутов с помощью метода. Если вы не указываете какие-либо атрибуты, файл создается с атрибутами по умолчанию. Следующий фрагмент кода создает файл с атрибутами по умолчанию.

Какие проблемы мы будем решать в этом уроке?

Если вы откроете новый выходной поток и немедленно закроете его, будет создан пустой файл. Первый метод позволяет коду указать каталог для временного файла, а второй метод создает новый файл в каталоге временных файлов по умолчанию. Оба метода позволяют указать суффикс для имени файла, а первый метод позволяет также указать префикс. Следующий фрагмент кода дает пример второго метода.

This new text This new text2 This new text3 This new text4

2. Как читать файл?

Теперь в классе FileWorker создадим метод для чтения файла, также статический:

Public static String read(String fileName) throws FileNotFoundException { //Этот спец. объект для построения строки StringBuilder sb = new StringBuilder(); exists(fileName); try { //Объект для чтения файла в буфер BufferedReader in = new BufferedReader(new FileReader(file.getAbsoluteFile())); try { //В цикле построчно считываем файл String s; while ((s = in.readLine()) != null) { sb.append(s); sb.append("\n"); } } finally { //Также не забываем закрыть файл in.close(); } } catch(IOException e) { throw new RuntimeException(e); } //Возвращаем полученный текст с файла return sb.toString(); }

Кодировка символов и кодировка

Результатом запуска этого файла будет что-то вроде следующего. Специфический формат временного имени файла зависит от платформы. Во-первых, давайте посмотрим на разные классы, которые способны читать и писать потоки символов.

Чтение из примера текстового файла

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

StringBuilder — в чем разница между обычным String? В том что когда вы в StringBuilder добавляете текст он не пересоздается, а String пересоздает себя.

Также если файла нет то метод выкинет Exception.

Для проверки на существование файла создадим метод, так как нам еще потребуется эта проверка в следующих методах:

Private static void exists(String fileName) throws FileNotFoundException { File file = new File(fileName); if (!file.exists()){ throw new FileNotFoundException(file.getName()); } }

Это позволяет сэкономить данные, чтобы вы могли иметь дело с ним в строке или в любом месте вместо символа по символу. Чтение 649 байт. Конечно, если бы у вас был «реальный» двоичный файл - например, изображение - вы бы не хотели его преобразовывать в строку и печатать на консоли, как указано выше.

Выходной файл теперь выглядит следующим образом. Мы пишем текст в файл. В следующем примере мы выписываем некоторый текст в виде двоичных данных в файл. Обычно, конечно, вы, вероятно, захотите написать какой-то проприетарный формат файла или что-то в этом роде.

Теперь проверим его:

Private static String text = "This new text \nThis new text2\nThis new text3\nThis new text4\n"; private static String fileName = "C://blog/a.txt"; public static void main(String args) throws FileNotFoundException { //Попытка прочитать несуществующий файл FileWorker.read("no_file.txt"); //Чтение файла String textFromFile = FileWorker.read(fileName); System.out.println(textFromFile); }

В первом случае когда файл не существует мы получим это:

Exception in thread "main" java.io.FileNotFoundException: no_file.txt at com.devcolibri.tools.FileWorker.read(FileWorker.java:31)

Все эти потоки представляют собой источник ввода и конечный пункт вывода. Поток может быть определен как последовательность данных. Существует два вида потоков. Мы увидим наиболее часто используемые примеры один за другим -. Ниже приведен пример, который использует эти два класса для копирования входного файла в выходной файл -. Мы можем переписать вышеприведенный пример, который позволяет использовать эти два класса для копирования входного файла в выходной файл -.

Свойства и методы класса File

Стандартная ошибка. . Как описано выше, поток можно определить как последовательность данных. Вот иерархия классов для обработки потоков ввода и вывода.


Этот поток используется для чтения данных из файлов. Следующий конструктор принимает имя файла в виде строки для создания объекта входного потока для чтения файла -.

Во втором случае, мы получим содержимое файла в виде строки. (для этого закомментируйте первый случай )

3. Как обновить файл?

Как такого Update для файлов нет, но способ обновить его есть, для этого можно его перезаписать.

Давайте создадим метод update в классе FileWorker:

Public static void update(String nameFile, String newText) throws FileNotFoundException { exists(fileName); StringBuilder sb = new StringBuilder(); String oldFile = read(nameFile); sb.append(oldFile); sb.append(newText); write(nameFile, sb.toString()); }

Классы FileReader и FileWriter

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

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

Тут мы считываем старый файл в StringBuilder после чего добавляем к нему новый текст и записываем опять. Обратите внимание что для этого мы используем наши методы.

В результате обновления файла:

Private static String text = "This new text \nThis new text2\nThis new text3\nThis new text4\n"; private static String fileName = "C://blog/a.txt"; public static void main(String args) throws FileNotFoundException { //Обновление файла FileWorker.update(fileName, "This new text"); }

Существуют два полезных метода утилиты файлов, которые можно использовать для создания каталогов -. Манипулирование текстовыми файлами - это навык, который послужит вам в карьере программирования. В этом разделе вы узнаете, как открывать и как писать в текстовый файл. Но в текстовом файле мы просто имеем в виду файл с текстом в нем - просто так!

Первое, что мы сделаем, это открыть текстовый файл и прочитать его содержимое. Добавьте оператор импорта чуть ниже строки пакета и перед именем класса. Окно кодирования будет выглядеть следующим образом. Чтобы справиться с чем-то не так с нашей обработкой файлов, добавьте следующее к основному методу.

мы получим следующее содержание файла «a.txt «:

This new text This new text2 This new text3 This new text4 This new text

4. Как удалить файл?

В тот же наш утилитный класс FileWorker добавим метод delete, он будет очень простым так как у объекта File уже есть метод delete ():

Public static void delete(String nameFile) throws FileNotFoundException { exists(nameFile); new File(nameFile).delete(); }

Проверяем:

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

Теперь нам нужно создать метод, который возвращает все строки кода из текстового файла. Линии будут удерживаться в массиве. Добавьте следующее объявление метода, которое откроет файл. Не беспокойтесь о красном подчеркивании: он уйдет, как только мы добавим код.

Private static String fileName = "C://blog/a.txt"; public static void main(String args) throws FileNotFoundException { //Удаление файла FileWorker.delete(fileName); }

После чего файл будет удален.

Правила перепечатки сайта www.сайт

Уважаемый посетитель проекта!

В этом документе, Вы можете узнать на каких условиях Вы сможете использовать материалы, сайта www..д. и т.п.

Вам разрешается свободно использовать в своих целях любой документ при соблюдении следующих условий:

Массив будет содержать все строки из текстового файла. Для каждого метода, который имеет дело с чтением текстовых файлов, требуется один из них. Это считывает байты из текстового файла, и каждый байт является единственным символом. Вы можете читать целые строки текста, а не отдельные символы.

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

Содержание урока или статьи при перепечатке не должно подвергаться модификациям и переделке. Все уроки и статьи, размещенные на сайте, должны перепечатываться как есть. Вы не имеете права урезать, исправлять или иным образам коверкать републикуемый документ. Но если это жизненно важно, Вы можете обратиться к администратору проекта www.. Без письменного согласия администратора, модифицировать документ запрещается!!!

На данный момент мы установим количество строк в текстовом файле. Очевидно, что текстовые файлы могут содержать любое количество строк, и мы обычно не знаем, сколько. Мы напишем отдельный метод, который получает количество строк в текстовом файле. Количество позиций в массиве устанавливается на количество строк.

Примеры создания объектов File

Мы поставили это между квадратными скобками. Чтобы поместить все строки текста из файла в каждую позицию в массиве, нам нужен цикл. Цикл будет получать каждую строку текста и помещать каждую строку в массив. Добавьте в свой код следующее. Линия, которая обращается к строкам текста и сохраняет их в массиве, следующая.

В конце перепечатываемого документа Вы обязаны вставить ссылку на сайт www.сайт.

Ссылка на сайт , обязательно должна быть работоспособной (при нажатии человек должен выходить на сайт автора). Если Вы перепечатали какой-либо документ, обязательно проверьте ссылку на работоспособность.

Пакет java.io содержит почти каждый класс, который может потребоваться Вам для совершения ввода и вывода в Java. Все данные потоки представлены потоком ввода и адресом вывода. Поток в пакете java.io осуществляет поддержку различных данных, таких как примитивы, объекты, локализованные символы и т.д.

После знака равенства мы имеем следующее. После считывания строки мы сохраняем строку в позиции массива. Теперь еще две строки кода для добавления метода. Поэтому добавьте эти строки в свой код. Возвращаемая строка возвращает весь массив. Обратите внимание, что для имени массива не требуются квадратные скобки. Когда вы добавили код, все эти уродливые подчеркивания должны исчезнуть. Затем ваш метод должен выглядеть так.

Работа с файлами посредством классов FileInputStream и FileOutputStream

Тем не менее, проблема с количеством строк. Нам нужно пройти через любой текстовый файл и подсчитать, сколько строк оно имеет. Это количество строк текстового файла. Для округления строк текста мы имеем следующее. Но он просто говорит «прочитайте каждую строку текста и остановитесь, когда будет достигнуто нулевое значение». Поэтому вместо жесткого кодирования количества строк мы можем вызвать наш новый метод и получить количество строк в любом текстовом файле.

Потоки

Потоки в Java определяются в качестве последовательности данных. Существует два типа потоков:

  • InPutStream – поток ввода используется для считывания данных с источника.
  • OutPutStream – поток вывода используется для записи данных по месту назначения.

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

Настройте строковую переменную для хранения имени текстового файла. На этом этапе вам нужно создать текстовый файл где-то на вашем компьютере. Создайте аналогичный текстовый файл на своем компьютере. Обратите внимание, где вы сохранили его, потому что вам нужен путь к файлу. При необходимости измените путь к файлу. Затем мы можем вызвать метод, который открывает файл.

Но мы можем сделать это в попытке? блок блокировки. Этого достаточно, чтобы передать конструктору путь к файлу, который ему нужен. После слова «улов» у нас есть пара круглых скобок. В круглых скобках мы имеем следующее. Это даст пользователю некоторую информацию о том, что пошло не так. Прежде чем мы увидим пример сообщения об ошибке, пропустите все строки текстового файла, распечатав каждый из них.

Байтовый поток

Потоки байтов в Java используются для осуществления ввода и вывода 8-битных байтов. Не смотря на множество классов, связанных с потоками байтов, наиболее распространено использование следующих классов: FileInputStream и FileOutputStream. Ниже рассмотрен пример, иллюстрирующий использование данных двух классов для копирования из одного файла в другой.

Примечание по примеру:

Пример

import java.io.*; public class FileCopy { public static void main(String args) throws IOException { FileInputStream fileIn = null; FileOutputStream fileOut = null; try { fileIn = new FileInputStream("file.txt"); fileOut = new FileOutputStream("copied_file.txt"); int a; // Копирование содержимого файла file.txt while ((a = fileIn.read()) != -1) { fileOut.write(a); // Чтение содержимого файла file.txt и запись в файл copied_file.txt } }finally { if (fileIn != null) { fileIn.close(); } if (fileOut != null) { fileOut.close(); } } } }

Содержимое файла file.txt

В качестве следующего шага необходимо скомпилировать java-программу и выполнить ее, что позволит создать файл copied_file.txt с тем же содержимым, что имеется в file.txt. Таким образом, разместим обозначенный код в файле FileCopy.java и выполним следующее действие:

Символьные потоки

Потоки байтов в Java позволяют произвести ввод и вывод 8-битных байтов, в то время как потоки символов используются для ввода и вывода 16-битного юникода. Не смотря на множество классов, связанных с потоками символов, наиболее распространено использование следующих классов: FileReader и FileWriter. Не смотря на тот факт, что внутренний FileReader использует FileInputStream, и FileWriter использует FileOutputStream, основное различие состоит в том, что FileReader производит считывание двух байтов в конкретный момент времени, в то время как FileWriter производит запись двух байтов за то же время.

Мы можем переформулировать представленный выше пример, в котором два данных класса используются для копирования файла ввода (с символами юникода) в файл вывода.

Примечание по примеру: чтобы скопировать файл, необходимо в папке проекта создать файл file.txt с любым или пустым содержимым.

Пример

import java.io.*; public class FileCopy { public static void main(String args) throws IOException { FileReader fileIn = null; FileWriter fileOut = null; try { fileIn = new FileReader("file.txt"); fileOut = new FileWriter("copied_file.txt"); int a; while ((a = fileIn.read()) != -1) { fileOut.write(a); } } finally { if (fileIn != null) { fileIn.close(); } if (fileOut != null) { fileOut.close(); } } } }

Теперь рассмотрим файл file.txt со следующим содержимым:

Содержимое файла file.txt

В качестве следующего шага необходимо скомпилировать программу и выполнить ее, что позволит создать файл copied_file.txt с тем же содержимым, что имеется в file.txt. Таким образом, разместим обозначенный код в файле FileCopy.java и выполним следующее действие:

$javac FileCopy.java $java FileCopy

Стандартные потоки

Все языки программирования обеспечивают поддержку стандартного ввода/вывода, где программа пользователя может произвести ввод посредством клавиатуры и осуществить вывод на экран компьютера. Если вы знакомы с языками программирования C либо C++, вам должны быть известны три стандартных устройства STDIN, STDOUT и STDERR. Аналогичным образом, Java предоставляет следующие три стандартных потока:

  • Стандартный ввод – используется для перевода данных в программу пользователя, клавиатура обычно используется в качестве стандартного потока ввода, представленного в виде System.in.
  • Стандартный вывод – производится для вывода данных, полученных в программе пользователя, и обычно экран компьютера используется в качестве стандартного потока вывода, представленного в виде System.out.
  • Стандартная ошибка – используется для вывода данных об ошибке, полученной в программе пользователя, чаще всего экран компьютера служит в качестве стандартного потока сообщений об ошибках, представленного в виде System.err.

Ниже представлена простая программа, которая создает InputStreamReader для чтения стандартного потока ввода, до введения пользователем "q":

Пример

import java.io.*; public class ReadConsole { public static void main(String args) throws IOException { InputStreamReader inStRe = null; try { inStRe = new InputStreamReader(System.in); System.out.println("Введите символы, символ "q" для выхода."); char a; do { a = (char) inStRe.read(); System.out.print(a); } while(a != "q"); }finally { if (inStRe != null) { inStRe.close(); } } } }

Разместим представленный выше код в файле ReadConsole.java и попробуем скомпилировать и выполнить его согласно тому, как это представлено в следующей программе. Данная программа продолжает чтение и вывод одного и того же символа до нажатия "q":

$javac ReadConsole.java $java ReadConsole Введите символы, "q" для выхода..su q q

Чтение и запись файла

Как было указано выше, поток представляет собой последовательность данных. InputStream используется для считывания данных с источника, OutputStream служит для записи данных по месту назначения.

Ниже представлена иерархия классов для управления потоками Ввода и Вывода.

В данном уроке нам предстоит рассмотреть два важных потока: FileInputStream и FileOutputStream.

Поток FileInputStream – чтение из файла

Поток FileInputStream – это поток, который используется в Java для чтения данных из файла. Объекты могут быть созданы при использовании ключевого слова new, доступны несколько типов конструкторов.

Представленный конструктор использует имя файла в качестве потока с целью создания объекта входного потока для считывания файла:

InputStream a = new FileInputStream("D:/myprogramm/java/test");

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

File a = new File("D:/myprogramm/java/test"); InputStream a = new FileInputStream(a);

Теперь, получив объект InputStream, следует ознакомиться со следующим перечнем вспомогательных методов, которые могут быть использованы для считывания потока либо выполнения иных операций в потоке.

Метод и описание
1 public void close() throws IOException{}
Данный метод в Java закрывает выходной файловый поток. Освобождает какие-либо системные ресурсы, связанные с файлом. Выдает IOException.
2 protected void finalize()throws IOException {}
Данный метод выполняет очистку соединения с файлом. Позволяет удостовериться в вызове закрытого метода данного выходного файлового потока при отсутствии каких-либо ссылок на данный поток. Выдает IOException.
3 public int read(int r)throws IOException{}
Данный метод осуществляет в Java считывание заданных байтов данных из InputStream. Возврат данных типа int. Возврат следующего байта данных, в конце файла будет произведен возврат к -1.
4 public int read(byte r) throws IOException{}
Данный метод производит считывание байтов r.length из входного потока в массив. Возврат общего числа считанных байтов. В конце файла будет произведен возврат к -1.
5 public int available() throws IOException{}
Выдает число байтов, которые могут быть считаны из входного файлового потока. Возврат данных типа int.

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

Поток FileOutputStream – создание и запись файла

Поток FileOutputStream – это поток, который используется в Java для создания файла и последующей записи в него. Поток создаст файл в случае его отсутствия перед его открытием для вывода.

Представленный конструктор использует имя файла в качестве строки с целью создания объекта входного потока для записи файла в Java:

OutputStream a = new FileOutputStream("D:/myprogramm/java/test")

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

File a = new File("D:/myprogramm/java/test"); OutputStream a = new FileOutputStream(a);

Теперь, получив объект OutputStream, следует ознакомиться со следующим перечнем вспомогательных методов, которые могут быть использованы для записи потока либо выполнения иных операций в потоке.

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

Пример

В следующем примере представлены InputStream и OutputStream – потоки для чтения, создания и записи файла:

Import java.io.*; public class File { public static void main(String args) { try { char c = {"a","b","c"}; OutputStream output = new FileOutputStream("file.txt"); // Создание текстового файла for(int i = 0; i

Представленный выше java-код создаст файл file.txt и пропишет заданные символы в формате char. То же самое будет выводиться на экран стандартного вывода.

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

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

  • 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/:

Build build.xml manifest.mf nbproject src ReadDirectory



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: