Автор оригинала: Pankaj Kumar.
Сегодня мы рассмотрим путь к файлу Java. Путь к файлу Java может быть абстрактным, абсолютным или каноническим.
Путь к файлу Java
java.io.Файл
содержит три метода определения пути к файлу, мы рассмотрим их в этом руководстве.
getPath()
: Этот метод пути к файлу возвращает абстрактный путь в виде строки. Если строковый путь используется для создания файла объекта, он просто возвращает аргумент pathname. Если в качестве аргумента используется URI, то он удаляет протокол и возвращает имя файла.getAbsolutePath()
: Этот метод пути к файлу возвращает абсолютный путь к файлу. Если файл создан с абсолютным путем, он просто возвращает путь.Если файловый объект создается с использованием относительного пути, абсолютный путь разрешается системно-зависимым способом. В системах UNIX относительный путь становится абсолютным путем его сопоставления с текущим каталогом пользователя.
В системах Microsoft Windows относительный путь становится абсолютным путем его сопоставления с текущим каталогом диска, названного путем, если таковой имеется; если нет, он сопоставляется с текущим каталогом пользователя.
getCanonicalPath
()
: Этот метод пути возвращает канонический путь, который является как абсолютным, так и уникальным. Этот метод сначала преобразует это имя пути в абсолютную форму, если это необходимо, как если бы он вызывал метод getAbsolutePath, а затем сопоставляет его с его уникальной формой зависящим от системы способом.Обычно это включает удаление избыточных имен, таких как “.” и”..”, из пути, разрешение символических ссылок (на платформах UNIX) и преобразование букв дисков в стандартный регистр (на платформах Microsoft Windows).
Пример Пути к файлу Java
Давайте рассмотрим различные варианты пути к файлу в java с помощью простой программы.
package com.journaldev.files; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class JavaFilePath { public static void main(String[] args) throws IOException, URISyntaxException { File file = new File("/Users/pankaj/test.txt"); printPaths(file); // relative path file = new File("test.xsd"); printPaths(file); // complex relative paths file = new File("/Users/pankaj/../pankaj/test.txt"); printPaths(file); // URI paths file = new File(new URI("file:///Users/pankaj/test.txt")); printPaths(file); } private static void printPaths(File file) throws IOException { System.out.println("Absolute Path: " + file.getAbsolutePath()); System.out.println("Canonical Path: " + file.getCanonicalPath()); System.out.println("Path: " + file.getPath()); } }
На изображении ниже показан вывод, полученный с помощью указанной выше программы пути к файлу java.
Результат понятен сам по себе. Исходя из выходных данных, использование канонического пути лучше всего подходит, чтобы избежать каких-либо проблем из-за относительных путей.
Также обратите внимание, что методы пути к файлу java не проверяют, существует файл или нет. Они просто работают с именем пути к файлу, используемому при создании объекта File. Это все для разных типов пути к файлу в java.