Генерация файлов из Java

{title}

Хотя работа с базами данных - это очень хорошая вещь, и она экономит нам много времени при выполнении запросов и связанных записей, бывают моменты, когда нам нужно генерировать файлы, независимо от того, доступен ли у нас сервер базы данных. или, может быть, потому что нам не нужно вести запись, если не набор данных, не связанных.
Управление файлами - это область, которую многие по-прежнему считают сложной или, возможно, устаревшей, однако это неправильно, генерация файлов жизненно важна для разработки систем и приложений. Файл может перейти от генерации .txt с некоторыми строками, в частности, к генерации большого .xml, который может определять конфигурацию.

Класс java.io.File


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

Основные методы


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

Этот метод дает нам логический ответ о существовании определенного файла в каталоге, который мы указываем при его вызове; очевидно, он возвращает истину или истину, если файл найден, и ложь или ложь, если это не так.
getCanonicalPath ()

Этот метод возвращает полное имя, включая путь к файлу, очень важно получить абсолютную позицию нашего файла в системе, в которой мы запускаем нашу программу.
getName ()

В отличие от предыдущего метода, он возвращает только относительное и краткое имя файла, то есть без указания адреса или папки, в которой он находится.
canRead ()

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

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

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

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

Создать файл


Создание файла - это процесс, с помощью которого мы пишем в системе, в которой работает наша программа. Существует разница между записью файла и записью в файле, первая говорит нам, что мы генерируем файл в системе, но мы не обязательно добавили содержимое; вместо этого второй указывает, что мы добавляем контент в существующий файл.
Вы можете задаться вопросом, зачем нам нужен пустой файл, пустой файл не является чем-то бесполезным, он может быть частью более крупного процесса в приложении, например, один метод создает файл, а после результата процесса другой метод заботится о Добавьте данные к нему. Это также может иметь жизненно важное значение для проверок, когда мы генерируем временные файлы, чтобы указать программе, на какой стадии процесса мы находимся и т. Д.
Давайте посмотрим ниже небольшой код, где мы генерируем пустой плоский файл.
 импорт java.io. *; импорт java.io.File; открытый класс Create Files {public static void main (String [] argv) выдает IOException {if (argv.length == 0) {System.err.println («Вы должны ввести имя по параметру»); System.exit (1); } for (строковое имя файла: argv) {новый файл (имя файла) .createNewFile (); }}} 

Мы видим, что в первую очередь мы импортируем классы java.io, чтобы иметь доступ к обработке исключений с помощью IOException, а затем импортируем класс java.io.File, который позволяет нам напрямую манипулировать файлами.
Затем мы создаем наш класс и в его методе main мы указываем, что он будет получать аргументы, мы делаем это, чтобы иметь возможность динамически указывать имена файлов. Поскольку нам нужно имя, мы делаем небольшую проверку, которая указывает, что если имя файла не получено, его запрашивают, чтобы оно было помещено, и программа завершается. Наконец, для каждого полученного аргумента мы создадим новый файл, с помощью которого мы создадим новый экземпляр класса File, а с помощью метода createNewFile () мы создадим файл в системе.
Мы должны знать, что если наша программа не имеет достаточных разрешений для создания файла в вашем каталоге, мы получим ошибку. Не нужно больше видеть, как наша программа выглядит при запуске на консоли:

{title}


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

Переименовать файл


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

Для переименования файла в Java требуются два объекта типа File : первый будет содержать файл, который мы хотим переименовать, а второй - новое имя файла. Как только мы выполним эти условия, мы должны вызвать метод renameTo () для объекта файла. существующие и передать новый объект с новым именем.
Давайте посмотрим на код, который нам нужен для выполнения операции переименования нашего файла:

 импорт java.io. *; импорт java.io.File; открытый класс Rename Files {public static void main (String [] argv) выдает IOException {File first object = new File ("New File.txt"); File objectSecond = new File ("FileNewName.txt"); First object.renameTo (Второй объект); }} 

Мы импортируем соответствующие классы и пакеты, сохраняя то же самое, что и в предыдущем примере.
В методе main () мы создадим наш первый объект и поместим имя файла, который мы создали в предыдущем примере, в данном случае это FileNew.txt . Затем мы создаем второй объект с новым именем, которое мы хотим для нашего файла, в примере мы выбрали FileNewName.txt .
Наконец, к первому объекту мы применяем метод renameTo () и в качестве аргумента или параметра передаем второй объект, который имеет новое имя для нашего файла. Давайте посмотрим, как это выглядит на консоли, когда мы выполняем наш код:

{title}


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

Удалить файл


Наконец, мы увидим другую операцию, которая довольно часто встречается при работе с файлами и которая заключается в удалении, возможно, это одна из самых простых операций, поскольку нам нужно только знать имя файла, проверить его наличие и затем приступить к его удалению с помощью метода delete. () где мы передадим имя рассматриваемого файла. Давайте посмотрим в следующем коде, как мы достигаем этого:
 импорт java.io. *; импорт java.io.File; открытый класс Delete File {public static void main (String [] argv) {delete ('FileNewName.txt'); } public static void delete (String FileName Delete) {try {File file = новый файл (FileName Delete); if (! file.exists ()) {System.err.println («Файл» + имя файла Delete + «не существует в этом каталоге»); возвращение; } if (file.delete ()) System.err.println ("** Файл" + имя файла Delete + "был удален **"); иначе System.err.println («Не удалось удалить файл:» + FileName Delete); } catch (SecurityException e) {System.err.println ("Невозможно удалить файл:" + имя файла Delete + "(" + e.getMessage () + ")"); }}} 

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

$config[ads_text6] not found

{title}


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

{title}


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