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

Создать файл в определенном каталоге в Java

· 2 мин. чтения

1. Обзор

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

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

2. Абсолютные и относительные пути к файлам

2.1. Абсолютные пути

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

Мы используем Files.touch() , который является частью Google Guava, как простой способ создать пустой файл:

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithAbsolutePath = new File(tempDirectory.getAbsolutePath() + "/testFile.txt");

assertFalse(fileWithAbsolutePath.exists());

Files.touch(fileWithAbsolutePath);

assertTrue(fileWithAbsolutePath.exists());

2.2. Относительные пути

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

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithRelativePath = new File(tempDirectory, "newFile.txt");

assertFalse(fileWithRelativePath.exists());

Files.touch(fileWithRelativePath);

assertTrue(fileWithRelativePath.exists());

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

3. Использование независимого от платформы разделителя файлов

Чтобы построить пути к файлам, нам нужно использовать разделители, такие как / или ** . Однако выбор подходящего разделителя зависит от вашей операционной системы** . К счастью, есть более простой способ. Мы можем использовать File.separator в Java вместо символов-разделителей. В результате Java выбирает для нас подходящий разделитель.

Давайте рассмотрим пример создания файла с помощью этого метода:

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File newFile = new File(tempDirectory.getAbsolutePath() + File.separator + "newFile.txt");

assertFalse(newFile.exists());

Files.touch(newFile);

assertTrue(newFile.exists());

Используя File.separator , Java знает, как создавать пути на основе базовой файловой системы.

4. Вывод

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

Как всегда, код примера доступен на GitHub .