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 .