1. Обзор
В этом кратком руководстве мы рассмотрим, как создать файл в определенном каталоге .
Мы увидим разницу между абсолютными и относительными путями к файлам и будем использовать пути, которые работают в нескольких основных операционных системах.
2. Абсолютные и относительные пути к файлам
2.1. Абсолютные пути
Давайте начнем с создания файла в каталоге с помощью , ссылающегося на весь путь , также известный как абсолютный путь. Для демонстрации мы используем абсолютный путь к каталогу user temp и добавим в него наш файл.
Мы используем файлы .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. Относительные пути
Мы также можем создать файл в каталоге , который находится относительно другого каталога . Например, давайте создадим файл в каталоге user temp :
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());
В приведенном выше примере наш новый файл добавляется в путь к каталогу пользователя temp .
3. Использование независимого от платформы разделителя файлов
Чтобы построить пути к файлам, нам нужно использовать разделители, такие как / или \ . Однако соответствующий разделитель для использования зависит от вашей операционной системы . К счастью, есть более простой способ. Мы можем использовать Java File.separator вместо символов-разделителей. В результате 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 .