Перейти к содержимому

Как создать файл java

  • автор:

Как создать файл в Java

Создание нового файла в Java не такое уж сложное дело. Эта статья поможет новичкам научиться, как создать и записать новый файл в Java.

Сначала научимся, как создать новые файлы в Java.

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

Используйте класс java.io.File

При установлении объекта File вы указываете название файла и дальше используйте метод createNewFile(), который атомарно создает новый пустой файл с названием абстрактного пути, но только в случае, если файл с таким названием не существует.

Данный метод возвращает true, если названный файл не существует и был успешно создан. Возвращает false, если файл существует. Он также создает java.io.IOException, когда не может создать файл. Созданный файл пуст и имеет нулевой байт.

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

Запомните, что этот метод только создает файл, но не записывает к нему контент.

Пример

// Java программа для демонстрирования метода createNewFile() import java.io.File; public class FileCreator < public static void main(String args[]) < try < // Возьмите файл File f = new File("D:\\example.txt"); //Создайте новый файл // Убедитесь, что он не существует if (f.createNewFile()) System.out.println("File created"); else System.out.println("File already exists"); > catch (Exception e) < System.err.println(e); >> >

Когда закончите и запустите программу, результат будет иметь следующий вид:

Результат

Файл создан (File created)

2. Используйте класс java.io.FileOutputStream

Если хотите создать новый файл и одновременно записать какую-нибудь информацию в нем, можете использовать метод FileOutputStream.write. Этот метод автоматически создает новый файл и записывает в нем контент.

Метод FileOutputStream используется для записи байтов в файл. Если хотите записать символьно-ориентированную информацию, будет лучше использовать FileWriter.

Смотрите использование кода:

Пример

String fileData = "Some Test"; FileOutputStream fos = new FileOutputStream("D:\\example.txt"); fos.write(fileData.getBytes()); fos.flush(); fos.close();

3. Используйте Java NIO Files.write()

Используйте класс Java NIO Files для создания нового файла и записи информации в нем. Этот Java класс представляет метод write(Path path, byte[] bytes, OpenOption… options), который записывает байты к файлу по указанному пути.

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

Files.write() — это рекомендуемый способ создания файла, так как вам не придется беспокоиться о закрытии ресурсов IO.

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

  • lines — объект для реализования последовательности символов. Запишите строки текста к файлу. Каждая строка — это последовательность символов и записывается к файлу поочередно. Каждая строка заканчивается разделителем строки платформы.
  • options — Этот параметр указывает, как создается или открывается файл. Если никакой параметр не указан, по умолчанию будут выбраны параметры CREATE, TRUNCATE_EXISTING and WRITE. Это означает, что он открывает файл для записи и создает файл, если он не существует, или размер файла доводит до 0, если файл существует.
  • path — Указывает путь.
  • cs — Набор символов, используемый для кодировки

All the bytes in byte array are written to the file. This method ensures that the file is closed when all the bytes have been written and returns the path of written file.

Пример

import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class FilesWriterExample < public static void main(String[] args) < Path path = Paths.get("D:/data/example.txt"); try < String str = "Some write file Example"; byte[] bs = str.getBytes(); Path writtenFilePath = Files.write(path, bs); System.out.println("Written content in file:\n"+ new String(Files.readAllBytes(writtenFilePath))); > catch (Exception e) < e.printStackTrace(); >> >

Как создать текстовый файл java

Для работы с файлами можно использовать методы из библиотеки java.nio.file. Библиотека предоставляет классы Path и Paths для работы с путями файлов, а также класс Files для манипулирования с файловой системой.

Сначала нужно сформировать путь к файлу с помощью класса Paths, например используя метод Paths.get(). Получившийся объект нужно использовать в методах класса Files.

Пример создания файла:

import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; // Получаем путь к нужному файлу Path writeFilePath = Paths.get("/tmp/file.txt"); // Создаём файл Path createdFilePath = Files.createFile(writeFilePath); System.out.println("Файл создан: " + createdFilePath); // Записываем данные в файл String str = "Hello world!"; // Строку переводим в двоичный тип данных byte[] strToBytes = str.getBytes(); Files.write(createdFilePath, strToBytes); 

Как создать файл java

Класс File, определенный в пакете java.io, не работает напрямую с потоками. Его задачей является управление информацией о файлах и каталогах. Хотя на уровне операционной системы файлы и каталоги отличаются, но в Java они описываются одним классом File.

В зависимости от того, что должен представлять объект File — файл или каталог, мы можем использовать один из конструкторов для создания объекта:

File(String путь_к_каталогу) File(String путь_к_каталогу, String имя_файла) File(File каталог, String имя_файла)
// создаем объект File для каталога File dir1 = new File("C://SomeDir"); // создаем объекты для файлов, которые находятся в каталоге File file1 = new File("C://SomeDir", "Hello.txt"); File file2 = new File(dir1, "Hello2.txt");

Класс File имеет ряд методов, которые позволяют управлять файлами и каталогами. Рассмотрим некоторые из них:

  • boolean createNewFile() : создает новый файл по пути, который передан в конструктор. В случае удачного создания возвращает true, иначе false
  • boolean delete() : удаляет каталог или файл по пути, который передан в конструктор. При удачном удалении возвращает true.
  • boolean exists() : проверяет, существует ли по указанному в конструкторе пути файл или каталог. И если файл или каталог существует, то возвращает true, иначе возвращает false
  • String getAbsolutePath() : возвращает абсолютный путь для пути, переданного в конструктор объекта
  • String getName() : возвращает краткое имя файла или каталога
  • String getParent() : возвращает имя родительского каталога
  • boolean isDirectory() : возвращает значение true, если по указанному пути располагается каталог
  • boolean isFile() : возвращает значение true, если по указанному пути находится файл
  • boolean isHidden() : возвращает значение true, если каталог или файл являются скрытыми
  • long length() : возвращает размер файла в байтах
  • long lastModified() : возвращает время последнего изменения файла или каталога. Значение представляет количество миллисекунд, прошедших с начала эпохи Unix
  • String[] list() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
  • File[] listFiles() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
  • boolean mkdir() : создает новый каталог и при удачном создании возвращает значение true
  • boolean renameTo(File dest) : переименовывает файл или каталог

Работа с каталогами

Если объект File представляет каталог, то его метод isDirectory() возвращает true . И поэтому мы можем получить его содержимое — вложенные подкаталоги и файлы с помощью методов list() и listFiles() . Получим все подкаталоги и файлы в определенном каталоге:

import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir"); // если объект представляет каталог if(dir.isDirectory()) < // получаем все вложенные объекты в каталоге for(File item : dir.listFiles())< if(item.isDirectory())< System.out.println(item.getName() + " \t folder"); >else < System.out.println(item.getName() + "\t file"); >> > > >

Теперь выполним еще ряд операций с каталогами, как удаление, переименование и создание:

import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir//NewDir"); boolean created = dir.mkdir(); if(created) System.out.println("Folder has been created"); // переименуем каталог File newDir = new File("C://SomeDir//NewDirRenamed"); dir.renameTo(newDir); // удалим каталог boolean deleted = newDir.delete(); if(deleted) System.out.println("Folder has been deleted"); >>

Работа с файлами

Работа с файлами аналогична работе с каталога. Например, получим данные по одному из файлов и создадим еще один файл:

import java.io.File; import java.io.IOException; public class Program < public static void main(String[] args) < // определяем объект для каталога File myFile = new File("C://SomeDir//notes.txt"); System.out.println("File name: " + myFile.getName()); System.out.println("Parent folder: " + myFile.getParent()); if(myFile.exists()) System.out.println("File exists"); else System.out.println("File not found"); System.out.println("File size: " + myFile.length()); if(myFile.canRead()) System.out.println("File can be read"); else System.out.println("File can not be read"); if(myFile.canWrite()) System.out.println("File can be written"); else System.out.println("File can not be written"); // создадим новый файл File newFile = new File("C://SomeDir//MyFile"); try < boolean created = newFile.createNewFile(); if(created) System.out.println("File has been created"); >catch(IOException ex) < System.out.println(ex.getMessage()); >> >

При создании нового файла метод createNewFile() в случае неудачи выбрасывает исключение IOException , поэтому нам надо его отлавливать, например, в блоке try. catch, как делается в примере выше.

Создание и запись в файл в Java

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

Создание файла

В Java для создания файла используется класс File . Этот класс представляет собой абстракцию файлов и каталогов. Вот простой пример создания файла:

import java.io.File; import java.io.IOException; public class Main < public static void main(String[] args) < try < File file = new File("example.txt"); if (file.createNewFile()) < System.out.println("Файл создан"); >else < System.out.println("Файл уже существует"); >> catch (IOException e) < System.out.println("Ошибка при создании файла"); e.printStackTrace(); >> >

В этом примере создается новый объект File с именем «example.txt». Метод createNewFile() возвращает true , если файл был успешно создан, и false , если файл уже существует.

Запись в файл

После того, как файл был создан, можно начать запись в него. Для этого в Java используется класс FileWriter . Этот класс предоставляет методы для записи символьных данных в файл. Вот пример записи в файл:

import java.io.FileWriter; import java.io.IOException; public class Main < public static void main(String[] args) < try < FileWriter writer = new FileWriter("example.txt"); writer.write("Привет, мир!"); writer.close(); >catch (IOException e) < System.out.println("Ошибка при записи в файл"); e.printStackTrace(); >> >

В этом примере создается новый объект FileWriter , который связан с файлом «example.txt». Метод write() используется для записи строки «Привет, мир!» в файл. После записи в файл, его необходимо закрыть с помощью метода close() .

Таким образом, с помощью классов File и FileWriter , можно легко создать файл и записать в него данные.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *