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