Рубрики
Без рубрики

Путь к файлу Java, Абсолютный путь и Канонический путь

Путь к файлу Java, Путь к файлу в Java, абсолютный путь к файлу Java getAbsolutePath, Канонический путь к файлу Java getCanonicalPath, абстрактный путь к примеру кода getPath.

Автор оригинала: Pankaj Kumar.

Сегодня мы рассмотрим путь к файлу Java. Путь к файлу Java может быть абстрактным, абсолютным или каноническим.

Путь к файлу Java

java.io.Файл содержит три метода определения пути к файлу, мы рассмотрим их в этом руководстве.

  1. getPath() : Этот метод пути к файлу возвращает абстрактный путь в виде строки. Если строковый путь используется для создания файла объекта, он просто возвращает аргумент pathname. Если в качестве аргумента используется URI, то он удаляет протокол и возвращает имя файла.
  2. getAbsolutePath() : Этот метод пути к файлу возвращает абсолютный путь к файлу. Если файл создан с абсолютным путем, он просто возвращает путь.

    Если файловый объект создается с использованием относительного пути, абсолютный путь разрешается системно-зависимым способом. В системах UNIX относительный путь становится абсолютным путем его сопоставления с текущим каталогом пользователя.

    В системах Microsoft Windows относительный путь становится абсолютным путем его сопоставления с текущим каталогом диска, названного путем, если таковой имеется; если нет, он сопоставляется с текущим каталогом пользователя.

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