«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.