Перейти к содержимому

Resolve java что это

  • автор:

Ошибка «Cannot find symbol» или «Cannot resolve symbol» в Java

Ошибка «Cannot find symbol» или «Cannot resolve symbol» — это типичная ошибка компиляции в языке программирования Java. Эта ошибка возникает, когда компилятор не может найти символ, который был указан в коде. Символом может быть класс, метод, переменная и т.д.

Пример проблемы

Возьмем для примера следующий фрагмент кода:

public class HelloWorld < public static void main(String[] args) < System.out.prtln("Hello, World!"); >>

Здесь мы видим, что вместо метода println был указан prtln . В результате компилятор выдает ошибку Cannot find symbol , поскольку не может найти метод prtln .

Причины ошибок

Ошибки «Cannot find symbol» или «Cannot resolve symbol» могут быть вызваны различными причинами. Вот некоторые из наиболее распространенных:

  1. Опечатка в имени метода или переменной, как в приведенном выше примере.
  2. Использование неопределенной переменной или метода.
  3. Недостаток импорта необходимого класса или пакета.
  4. Использование класса или метода, который не доступен в текущей области видимости.

Решение проблемы

Решение проблемы с ошибкой «Cannot find symbol» или «Cannot resolve symbol» в значительной степени зависит от конкретной причины. В большинстве случаев следующие шаги помогут устранить ошибку:

  1. Проверить наличие опечаток в именах методов, классов и переменных.
  2. Убедиться, что все необходимые классы и пакеты были импортированы.
  3. Проверить, что используемый класс или метод доступен в текущей области видимости.
  4. Если ошибка связана с неопределенной переменной или методом, убедиться, что они были правильно определены и инициализированы.

Возвращаясь к нашему примеру, ошибка может быть исправлена путем исправления опечатки в имени метода, как показано ниже:

public class HelloWorld < public static void main(String[] args) < System.out.println("Hello, World!"); >>

В итоге, принимая во внимание все вышеуказанное, при возникновении ошибки «Cannot resolve symbol» или «Cannot find symbol» важно внимательно проверить код, чтобы устранить причину ошибки и обеспечить успешную компиляцию программы.

Resolve java что это

A Path экземпляр содержит информацию, используемую, чтобы определить расположение файла или каталога. В то время, когда это определяется, a Path предоставляется серию одного или более имен. Корневой элемент или имя файла могли бы быть включены, но ни один не требуется. A Path мог бы состоять из только единственного каталога или имени файла.

Можно легко создать a Path объект при использовании одного из следующих get методы от Paths (отметьте множественное число), помощник class:

Path p1 = Paths.get("/tmp/foo"); Path p2 = Paths.get(args[0]); Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));

Paths.get метод является сокращением для следующего кода:

Path p4 = FileSystems.getDefault().getPath("/users/sally");

Следующий пример создает /u/joe/logs/foo.log принятие Вашего корневого каталога /u/joe , или C:\joe\logs\foo.log если Вы находитесь на Windows.

Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");

Получение информации о Пути

Можно думать Path как хранящий эти элементы имени как последовательность. Самый высокий элемент в структуре каталогов был бы расположен в, индексируют 0. Самый низкий элемент в структуре каталогов был бы расположен в, индексируют [n-1] , где n число элементов имени в Path . Методы доступны для получения отдельных элементов или подпоследовательности Path использование их индексирует.

Примеры в этом уроке используют следующую структуру каталогов.

Демонстрационная Структура каталогов

Следующий фрагмент кода определяет a Path экземпляр и затем вызывает несколько методов, чтобы получить информацию о пути:

// None of these methods requires that the file corresponding // to the Path exists. // Microsoft Windows syntax Path path = Paths.get("C:\\home\\joe\\foo"); // Solaris syntax Path path = Paths.get("/home/joe/foo"); System.out.format("toString: %s%n", path.toString()); System.out.format("getFileName: %s%n", path.getFileName()); System.out.format("getName(0): %s%n", path.getName(0)); System.out.format("getNameCount: %d%n", path.getNameCount()); System.out.format("subpath(0,2): %s%n", path.subpath(0,2)); System.out.format("getParent: %s%n", path.getParent()); System.out.format("getRoot: %s%n", path.getRoot());

Вот вывод и для Windows и для Соляриса ОС:

Вызванный метод Возвраты в Солярисе ОС Возвраты в Microsoft Windows Комментарий
toString /home/joe/foo C:\home\joe\foo Возвращает строковое представление Path . Если путь создавался, используя Filesystems.getDefault().getPath(String) или Paths.get (последний является методом удобства для getPath ), метод выполняет незначительную синтаксическую уборку. Например, в операционной системе UNIX, это исправит строку ввода //home/joe/foo к /home/joe/foo .
getFileName foo foo Возвращает имя файла или последний элемент последовательности элементов имени.
getName(0) home home Возвращается элемент пути, соответствующий указанному, индексируют. 0th элемент является элементом пути, самым близким к корню.
getNameCount 3 3 Возвращает число элементов в пути.
subpath(0,2) home/joe home\joe Возвращает подпоследовательность Path (не включая корневой элемент), как определено к началу и окончанию индексирует.
getParent /home/joe \home\joe Возвращает путь родительского каталога.
getRoot / C:\ Возвращает корень пути.

Предыдущий пример показывает вывод для абсолютного пути. В следующем примере определяется относительный путь:

// Solaris syntax Path path = Paths.get("sally/bar"); or // Microsoft Windows syntax Path path = Paths.get("sally\\bar");

Вот является вывод для Windows и Соляриса ОС:

Вызванный метод Возвраты в Солярисе ОС Возвраты в Microsoft Windows
toString sally/bar sally\bar
getFileName bar bar
getName(0) sally sally
getNameCount 2 2
subpath(0,1) sally sally
getParent sally sally
getRoot null null

Удаление Избыточности От Пути

Много файловых систем используют «.» нотацию, чтобы обозначить текущий каталог и «..» обозначить родительский каталог. У Вас могла бы быть ситуация где a Path содержит избыточную информацию о каталоге. Возможно, сервер конфигурируется, чтобы сохранить его файлы журнала в» /dir/logs/. «каталог, и Вы хотите удалить запаздывание» /. «нотация от пути.

Следующие примеры оба включают избыточность:

/home/./joe/foo /home/sally/../joe/foo

normalize метод удаляет любые избыточные элементы, который включает любого» . «или» directory/.. «возникновения. Оба из предыдущих примеров нормализуют к /home/joe/foo .

Важно отметить это normalize не проверяет в файловой системе, когда она очищает путь. Это — просто синтаксическая работа. Во втором примере, если sally была символьная ссылка, удаляя sally/.. мог бы привести к a Path это больше не определяет местоположение намеченного файла.

Чтобы очистить путь, гарантируя, что результат определяет местоположение корректного файла, можно использовать toRealPath метод. Этот метод описывается в следующем разделе, Преобразовывая Путь.

Преобразование Пути

Можно использовать три метода, чтобы преобразовать Path . Если Вы должны преобразовать путь к строке, которая может быть открыта от браузера, можно использовать toUri . Например:

Path p1 = Paths.get("/home/logfile"); // Result is file:///home/logfile System.out.format("%s%n", p1.toUri());

toAbsolutePath метод преобразовывает путь к абсолютному пути. Если переданный — в пути является уже абсолютным, он возвращает то же самое Path объект. toAbsolutePath метод может быть очень полезным, обрабатывая вводимые пользователем имена файлов. Например:

public class FileTest < public static void main(String[] args) < if (args.length < 1) < System.out.println("usage: FileTest file"); System.exit(-1); >// Converts the input string to a Path object. Path inputPath = Paths.get(args[0]); // Converts the input Path // to an absolute path. // Generally, this means prepending // the current working // directory. If this example // were called like this: // java FileTest foo // the getRoot and getParent methods // would return null // on the original "inputPath" // instance. Invoking getRoot and // getParent on the "fullPath" // instance returns expected values. Path fullPath = inputPath.toAbsolutePath(); > >

toAbsolutePath метод преобразовывает ввод данных пользователем и возвращает a Path это возвращает полезные значения когда запрошено. Файл не должен существовать для этого метода, чтобы работать.

toRealPath метод возвращает реальный путь существующего файла. Этот метод выполняет несколько операций в одном:

  • Если true передается к этому методу, и файловая система поддерживает символьные ссылки, этот метод разрешает любые символьные ссылки в пути.
  • Если Path относительно, это возвращает абсолютный путь.
  • Если Path содержит любые избыточные элементы, это возвращает путь с теми удаленными элементами.

Этот метод выдает исключение, если файл не существует или не может быть получен доступ. Можно поймать исключение, когда Вы хотите обработать любой из этих случаев. Например:

try < Path fp = path.toRealPath(true); >catch (NoSuchFileException x) < System.err.format("%s: no such" + " file or directory%n", path); // Logic for case when file doesn't exist. >catch (IOException x) < System.err.format("%s%n", x); // Logic for other sort of file error. >

Присоединение к Двум Путям

Можно объединить пути при использовании resolve метод. Вы передаете в частичном пути, который является путем, который не включает корневой элемент, и что частичный путь добавляется к исходному пути.

Например, рассмотрите следующий фрагмент кода:

// Solaris Path p1 = Paths.get("/home/joe/foo"); // Result is /home/joe/foo/bar System.out.format("%s%n", p1.resolve("bar")); or // Microsoft Windows Path p1 = Paths.get("C:\\home\\joe\\foo"); // Result is C:\home\joe\foo\bar System.out.format("%s%n", p1.resolve("bar"));

Передача абсолютного пути к resolve метод возвращает переданный — в пути:

// Result is /home/joe Paths.get("foo").resolve("/home/joe");

Создание Пути Между Двумя Путями

Общее требование, когда Вы пишете код файлового ввода-вывода, является возможностью создать путь из одного расположения в файловой системе к другому расположению. Можно встретить это использование relativize метод. Этот метод создает путь, происходящий из исходного пути и заканчивающийся в расположении, определенном переданным — в пути. Новый путь относительно исходного пути.

Например, считайте два относительных пути определенными как joe и sally :

Path p1 = Paths.get("joe"); Path p2 = Paths.get("sally");

В отсутствие любой другой информации это принимается это joe и sally одноуровневые элементы, означая узлы, которые находятся на том же самом уровне в древовидной структуре. Перемещаться от joe к sally , Вы ожидали бы сначала перемещаться по одному уровню до родительского узла и затем вниз к sally :

// Result is ../sally Path p1_to_p2 = p1.relativize(p2); // Result is ../joe Path p2_to_p1 = p2.relativize(p1);

Рассмотрите немного более сложный пример:

Path p1 = Paths.get("home"); Path p3 = Paths.get("home/sally/bar"); // Result is sally/bar Path p1_to_p3 = p1.relativize(p3); // Result is ../.. Path p3_to_p1 = p3.relativize(p1);

В этом примере эти два пути совместно используют тот же самый узел, home . Перемещаться от home к bar , Вы сначала перемещаетесь, каждый уравнивает к sally и затем еще один уравнивать к bar . Навигация от bar к home требует перемещающийся вверх два уровня.

Относительный путь не может быть создан, если только один из путей включает корневой элемент. Если оба пути включают корневой элемент, возможность создать относительный путь системно-зависима.

Рекурсивное Copy пример использует relativize и resolve методы.

Сравнение Двух Путей

Path class поддерживает equals , то, чтобы позволять Вам протестировать два пути на равенство. startsWith и endsWith методы позволяют Вам протестировать, начинается ли путь или заканчивается определенной строкой. Эти методы удобны. Например:

Path path = . ; Path otherPath = . ; Path beginning = Paths.get("/home"); Path ending = Paths.get("foo"); if (path.equals(otherPath)) < // equality logic here > else if (path.startsWith(beginning)) < // path begins with "/home" > else if (path.endsWith(ending)) < // path ends with "foo" >

Path class реализует Iterable интерфейс. iterator метод возвращает объект, который позволяет Вам выполнить итерации по элементам имени в пути. Первый возвращенный элемент то, что самым близким к корню в дереве каталогов. Следующий фрагмент кода выполняет итерации по пути, печатая каждый элемент имени:

Path path = . ; for (Path name: path)

Path class также реализует Comparable интерфейс. Можно сравниться Path объекты при использовании compareTo который полезен для сортировки.

Можно также поместить Path объекты в a Collection . См., что Наборы запаздывают для получения дополнительной информации об этой мощной функции.

Когда Вы хотите проверить это два Path объекты определяют местоположение того же самого файла, можно использовать isSameFile метод, как описано в Проверке, определяют Ли Два Пути Местоположение Того же самого Файла.

Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.

Авторское право © 1995, 2012 Oracle и/или его филиалы. Все права защищены.

Files, Path

— Отлично. Только что Билаабо рассказывал кучу интересного про File, и как с ним работать.

— Думаю, у меня как раз есть что добавить по этой теме.

— Да? Тогда с удовольствием послушаю.

— Тогда слушай. Java постоянно развивается, постоянно ищутся новые способы делать различные вещи эффективнее. Еще в Java 7 была добавлена альтернатива классу File.

Files, Path - 1

— Ага. Взяли за основу класс File, добавили в него немного нового, переименовывали методы, а в конце еще и разделили на два. Так что теперь есть два новых класса – Path и Files . Path – это фактически новый аналог класса File, а Files – это утилитный класс (по аналогии с классами Arrays & Collections), в него можно вынести все статические методы класса File. Так «правильнее» с точки зрения ООП.

— Ну, раз с точки зрения ООП, то – ок. А что поменялось-то?

— Во-первых, отказались от дублирования методов, которые возвращали String и File. В классе Path все методы возвращают Path .

Во-вторых, убрали многие статические утилитные методы в класс Files .

В третьих, удобнее стало работать с относительными путями.

Вот список методов:

Методы класса Path Описание
boolean isAbsolute() Возвращает true, если путь – абсолютный.
Path getRoot() Возвращает корень текущего пути – директорию самого верхнего уровня.
Path getFileName() Возвращает имя файла из текущего пути.
Path getParent() Возвращает директорию из текущего пути.
boolean startsWith(Path other) Проверяет, что текущий путь начинается с переданного пути.
boolean endsWith(Path other) Проверяет, что текущий путь заканчивается на переданный путь.
Path normalize() Нормализует текущий путь. Например, приводит путь «c:/dir/dir2/../a.txt» к пути «c:/dir/a.txt»
Path relativize(Path other) Вычисляет относительный путь двух путей – «разницу путей»
Path resolve(String other) Восстанавливает абсолютный путь по текущему и относительному.
URI toUri() Возвращает URI текущего пути/файла.
Path toAbsolutePath() Приводит путь к абсолютному, если был относительный.
File toFile() Возвращает объект File, который соответствует текущему объекту Path.

— А текущий путь – это что?

— Это тот путь, который был передан в конструктор объекта Path, методы которого вызываются. Path – это «путь» по-английски.

— Ок. А какие методы есть у класса Files ?

— Ну и куда же ты так спешишь-то? Сейчас все расскажу. Вот основные методы:

Методы класса Files Описание
Path createFile(…) Создает файл на диске.
Path createDirectory(…) Создает директорию.
Path createDirectories(…) Создает директорию и поддиректории.
Path createTempFile(…) Создает «временный файл»
Path createTempDirectory(…) Создает «временную директорию»
void delete(Path path) Удаляет файл/директорию.
Path copy(Path source, Path target,…) Копирует файл.
Path move(Path source, Path target,…) Перемещает файл.
boolean isSameFile(Path, Path) Сравнивает два файла.
boolean isDirectory(Path) Путь — это директория?
boolean isRegularFile(Path) Путь – это файл?
long size(Path) Возвращает размер файла.
boolean exists(Path) Объект с таким именем существует?
boolean notExists(Path) Объект с таким именем не существует?
long copy(Path, OutputStream) Копирует все байты из Path в OutputStream.
long copy(InputStream, Path) Копирует все байты из InputStream в Path.
byte[] read(InputStream, int initialSize) Читает массив байт из InputStream.
byte[] readAllBytes(Path path) Читает все байты из InputStream.
List readAllLines(Path path. ) Читает текстовый файл, возвращает список строк.
Path write(Path path, byte[] bytes,…) Пишет массив байт в файл.

— Как интересно, столько крутых функций, и все в одном месте.

А зачем нужны временные файлы?

— Ну, смотри. Допустим, ты хочешь скачать файл из интернета, а потом отправить его кому-то. Для этого очень удобно создать временный файл на диске и сохранять считанные данные в него.

— А сложно скачать файл из интернета?

— Очень просто. Смотри пример:

URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png"); InputStream inputStream = url.openStream(); Path tempFile = Files.createTempFile("temp-",".tmp"); Files.copy(inputStream, tempFile);

— Да, а что ты ожидал тут увидеть? Тут всего 4 строчки.

Строка номер 1. Создается объект URL, куда передается ссылка в интернете на файл с картинкой.

Строка номер 2. У объекта url открывается поток на чтение файла – InputStream.

Строка номер 4. С помощью метода createTempFile создается временный файл.

Строка номер 5. Метод Files.copy копирует данные из inputStream в tempFile . Все.

— Отлично, рад, что тебе понравилось. Думаю, с остальными методами ты разберёшься сам. А я попрошу Диего дать тебе несколько задачек на них.

Вот тебе, кстати, хорошая ссылка на этот материал:

Java-университет

Комментарии (125)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Unholy intromen Уровень 29
15 августа 2023
умеют же когда хотят
Андрей Уровень 42
8 мая 2023

читая лекцию и уже автоматом ощущается напряг:» где-то меня наёмывают, а где — пока не пойму, надо посмотреть каменты». здесь либо более компетентные люди, либо более человечные.

Михаил Уровень 32
26 апреля 2023

 URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png"); InputStream inputStream = url.openStream(); Path tempFile = Files.createTempFile("temp-",".tmp"); Files.copy(inputStream, tempFile, StandardCopyOption.REPLACE_EXISTING); System.out.println(tempFile); 

здесь почему и зачем поменять расширение и наслаждаться рептилоидным знаком.
Кирилл Уровень 35
3 апреля 2023
У всех картинка нормально скачалась предложенным способом?
Edward Northwind Уровень 37
17 января 2023

У меня такое чувство, что лекторы специально удаляют из лекций часть материала, иначе я не пойму почему описана и разобрана только часть методов. Вот самый очевидный вопрос, а как получить объект Path из String?

Kurama Уровень 50
7 декабря 2022

 URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png"); InputStream inputStream = url.openStream(); Path tempFile = Files.createTempFile("temp-",".tmp"); Files.copy(inputStream, tempFile); 

— И это все? — Да, а что ты ожидал тут увидеть? Тут всего 4 строчки. Ага, конечно.
Kurama Уровень 50
7 декабря 2022

boolean exists(Path) Объект с таким именем существует? boolean notExists(Path) Объект с таким именем не существует? Гениально.

Зета Медведя Уровень 45
23 ноября 2022
sumenkov Уровень 36
27 сентября 2022
Опечатка по тексту: » в него вынесТи все статические методы класса File»
Just me Уровень 41
1 апреля 2022

Долго не понимал, почему для файла и папки используется один класс — File или Path. Сейчас понял: мы, люди, привыкли, что файлы и папки — это разные сущности. Как банка сгущенки(файл) и коробка(папка). Но по сути, что банка сгущенки, что коробка — это емкости. А вот сама сгущенка — это и есть то, что мы привыкли называть файлом — набор данных. Память устройства — это огромное количество ячеек, где в каждую ячейку «записывается» 0 либо 1. Но наши данные — это огромные последовательности таких 1 и 0. Например, число типа int займет 4 байта, или 32 бита. И чтобы записать число типа int, например, 5, нам потребуется целых 32 ячейки памяти! Но нам же еще надо прочитать это число, а именно эту последовательность единиц и нулей. Для этого нам надо знать место на диске, где располагается эта последовательность. Так вот это место на диске — это и есть тот самый путь, который мы обычно указываем. Т.е. папка — это ящик, а название файла — это банка. Но это все по сути — просто ссылка на некую область памяти. Но здесь есть один момент. Нам надо понять, что это за последовательность единиц и нулей лежит перед нами — музыка, фильм, картинка чтобы знать, какой программой её прочитать. Для этого мы помечаем каждую такую последовательность путем добавления дополнительных маркерных единиц и нулей в её начало. Этот маркер и есть наше расширение файла, которой мы привыкли видеть. Поэтому любой файл на компьютере — это ссылка на область памяти, в которой лежат данные, а не сами данные.

Resolve java что это

Объект, который может использоваться, чтобы определить местоположение файла в файловой системе. Это будет обычно представлять системно-зависимый путь к файлу. A Path представляет путь, который является иерархическим и составленным из последовательности элементов имени каталога и имени файла, разделенных специальным разделителем или разделителем. Корневой компонент, который идентифицирует иерархию файловой системы, может также присутствовать. Элемент имени, который является самым дальним от корня иерархии каталогов, является именем файла или каталога. Другие элементы имени являются именами каталогов. A Path может представить корень, корень и последовательность имен, или просто один или более элементов имени. A Path как полагают, пустой путь, если он состоит исключительно из одного элемента имени, который пуст. Доступ к файлу, используя пустой путь эквивалентен доступу к каталогу по умолчанию файловой системы. Path определяет getFileName , getParent , getRoot , и subpath методы, чтобы получить доступ к компонентам пути или подпоследовательности его элементов имени. В дополнение к доступу к компонентам пути, a Path также определяет resolve и resolveSibling методы, чтобы объединить пути. relativize метод, который может использоваться, чтобы создать относительный путь между двумя путями. Пути могут быть compared , и протестированный друг против друга, используя startsWith и endWith методы. Этот интерфейс расширяется Watchable взаимодействуйте через интерфейс так, чтобы каталог, расположенный путем, мог быть registered с a WatchService и записи в каталоге смотрели. ПРЕДУПРЕЖДЕНИЕ: Этот интерфейс только предназначается, чтобы быть реализованным теми, которые разрабатывают пользовательские реализации файловой системы. Методы могут быть добавлены к этому интерфейсу в будущих выпусках.

Доступ к Файлам

Пути могут использоваться с Files класс, чтобы работать на файлах, каталогах, и других типах файлов. Например, предположите, что мы хотим a BufferedReader считать текст из файла» access.log «. Файл располагается в каталоге» logs «относительно текущего рабочего каталога и закодированный UTF-8.

Path path = FileSystems.getDefault().getPath("logs", "access.log"); BufferReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);
Функциональная совместимость

Пути связались со значением по умолчанию provider являются обычно взаимодействующими с java.io.File класс. Пути, создаваемые другими провайдерами, вряд ли будут взаимодействующими с абстрактными путями, представленными java.io.File . toPath метод может использоваться, чтобы получить a Path от абстрактного пути, представленного a java.io.File объект. Получающееся Path может использоваться, чтобы работать на том же самом файле как java.io.File объект. Кроме того, toFile метод полезен, чтобы создать a File от String представление a Path .

Параллелизм

Реализации этого интерфейса являются неизменными и безопасными для использования многократными параллельными потоками.

Сводка метода

Методы

Модификатор и Тип Метод и Описание
int compareTo(Path other)

Сравнивает два абстрактных пути лексикографически.
Тесты, если этот путь заканчивается данным путем.

Тесты, если этот путь заканчивается a Path , созданный, преобразовывая данную строку пути, точно способом, определенным endsWith(Path) метод.

Тесты этот путь для равенства с данным объектом.
Возвращает имя файла или каталога, обозначенного этим путем как a Path объект.
Возвращает файловую систему, которая создала этот объект.
Возвращает элемент имени этого пути как a Path объект.
Возвращает число элементов имени в пути.
Возвращает родительский путь, или null если у этого пути нет родителя.

Возвращает корневой компонент этого пути как a Path объект, или null если у этого пути нет корневого компонента.

Вычисляет хэш-код для этого пути.
Говорит, является ли этот путь абсолютным.
Возвращает iterator по элементам имени этого пути.
Возвращает путь, который является этим путем с избыточными устраненными элементами имени.
Регистрирует файл, расположенный этим путем со службой часов.
Регистрирует файл, расположенный этим путем со службой часов.
Создает относительный путь между этим путем и данным путем.
Разрешите данный путь против этого пути.

Преобразовывает данную строку пути в a Path и решения это против этого Path точно способом, определенным resolve метод.

Разрешает данный путь против этого пути parent путь.

Преобразовывает данную строку пути в a Path и решения это против этого пути parent путь точно способом, определенным resolveSibling метод.

Тесты, если этот путь запускается с данного пути.

Тесты, если этот путь запускается с a Path , созданный, преобразовывая данную строку пути, точно способом, определенным startsWith(Path) метод.

Возвращает родственника Path это — подпоследовательность элементов имени этого пути.
Возвраты a Path объект, представляющий абсолютный путь этого пути.
Возвраты a File объект, представляющий этот путь.
Возвращает реальный путь существующего файла.
Возвращает строковое представление этого пути.
Возвращает URI, чтобы представить этот путь.

Деталь метода

getFileSystem
FileSystem getFileSystem()

Возвращает файловую систему, которая создала этот объект.

isAbsolute
boolean isAbsolute()

Говорит, является ли этот путь абсолютным. Абсолютный путь полон в этом, он не должен быть объединен с другой информацией о пути, чтобы определить местоположение файла.

getRoot
Path getRoot()

Возвращает корневой компонент этого пути как a Path объект, или null если у этого пути нет корневого компонента.

getFileName
Path getFileName()

Возвращает имя файла или каталога, обозначенного этим путем как a Path объект. Имя файла является самым дальним элементом от корня в иерархии каталогов.

getParent
Path getParent()

Возвращает родительский путь, или null если у этого пути нет родителя. Родитель этого объекта пути состоит из корневого компонента этого пути, если таковые вообще имеются, и каждого элемента в пути за исключением самого дальнего от корня в иерархии каталогов. Этот метод не получает доступ к файловой системе; путь или его родитель, возможно, не существуют. Кроме того этот метод не устраняет специальные имена такой как».» и «..» это может использоваться в некоторых реализациях. На UNIX например, родителе» /a/b/c /a/b «, и родитель «x/y/. x/y «. Этот метод может использоваться с normalize метод, чтобы устранить избыточные имена, для случаев, где подобная оболочке навигация требуется. Если у этого пути есть один или более элементов, и никакой корневой компонент, то этот метод эквивалентен оценке выражения:

subpath(0, getNameCount()-1);
getNameCount
int getNameCount()

Возвращает число элементов имени в пути.

getName
Path getName(int index)

Возвращает элемент имени этого пути как a Path объект. index параметр является индексом элемента имени, чтобы возвратиться. У элемента, который является самым близким к корню в иерархии каталогов, есть индекс 0 . У элемента, который является самым дальним от корня, есть индекс count -1 .

подпуть
Path subpath(int beginIndex, int endIndex)

Возвращает родственника Path это — подпоследовательность элементов имени этого пути. beginIndex и endIndex параметры определяют подпоследовательность элементов имени. У имени, которое является самым близким к корню в иерархии каталогов, есть индекс 0 . У имени, которое является самым дальним от корня, есть индекс count -1 . Возвращенный Path у объекта есть элементы имени, которые начинаются в beginIndex и расширитесь на элемент по индексу endIndex-1 .

startsWith
boolean startsWith(Path other)

Тесты, если этот путь запускается с данного пути. Этот путь запускается с данного пути, если корневой компонент этого пути запускается с корневого компонента данного пути, и этот путь запускается с тех же самых элементов имени как данный путь. Если у данного пути есть больше элементов имени чем этот путь тогда false возвращается. Запускается ли корневой компонент этого пути с корневого компонента данного пути, определенная файловая система. Если у этого пути нет корневого компонента, и у данного пути есть корневой компонент тогда, этот путь не запускается с данного пути. Если данный путь связывается с различным FileSystem к этому пути тогда false возвращается.

startsWith
boolean startsWith(String other)

Тесты, если этот путь запускается с a Path , созданный, преобразовывая данную строку пути, точно способом, определенным startsWith(Path) метод. На UNIX например, путь» foo/bar «запускается с» foo «и» foo/bar «. Это не запускается с» f «или» fo «.

endsWith
boolean endsWith(Path other)

Тесты, если этот путь заканчивается данным путем. Если у данного пути есть элементы N, и никакой корневой компонент, и у этого пути есть N или больше элементов, то этот путь концы с данным путем, если последние элементы N каждого пути, запускающегося в элементе, самом дальнем от корня, равны. Если у данного пути есть корневой компонент тогда этот путь концы с данным путем, если корневой компонент этого пути концы с корневым компонентом данного пути, и соответствующими элементами обоих путей равен. Является ли корневой компонент этого пути концы с корневым компонентом данного пути определенной файловой системой. Если у этого пути нет корневого компонента, и у данного пути есть корневой компонент тогда, этот путь не заканчивается данным путем. Если данный путь связывается с различным FileSystem к этому пути тогда false возвращается.

endsWith
boolean endsWith(String other)

Тесты, если этот путь заканчивается a Path , созданный, преобразовывая данную строку пути, точно способом, определенным endsWith(Path) метод. На UNIX например, путь» foo/bar «концы с» foo/bar «и» bar «. Это не заканчивается» r «или» /bar «. Отметьте, что запаздывающие разделители не принимаются во внимание, и таким образом вызывая этот метод на Path » foo/bar «с String » bar/ «возвраты true .

нормализовать
Path normalize()

Возвращает путь, который является этим путем с избыточными устраненными элементами имени. Точное определение этого метода является зависящим от реализации, но вообще это происходит из этого пути, пути, который не содержит избыточные элементы имени. Во многих файловых системах,» . «и» .. «специальные имена, используемые, чтобы указать на текущий каталог и родительский каталог. В таких файловых системах все возникновения» . «считаются избыточными. Если» .. «предшествуется не -» .. «имя тогда оба имени считают избыточными (процесс, чтобы идентифицировать такие имена повторяется, до не это больше применимый). Этот метод не получает доступ к файловой системе; путь, возможно, не определяет местоположение файла, который существует. Устранение» .. «и предыдущее имя от пути может привести к пути, который определяет местоположение различного файла чем исходный путь. Это может возникнуть, когда предыдущее имя является символьной ссылкой.

решение
Path resolve(Path other)

Разрешите данный путь против этого пути. Если other параметр absolute соедините каналом тогда этот метод, тривиально возвращается other . Если other пустой путь тогда, этот метод тривиально возвращает этот путь. Иначе этот метод полагает, что этот путь каталог, и разрешает данный путь против этого пути. В самом простом случае у данного пути нет a root компонент, когда этот метод соединяет данный путь к этому пути и возвращает получающийся путь это ends с данным путем. Где у данного пути есть корневой компонент тогда, разрешение является очень зависящим от реализации и поэтому неуказанным.

решение
Path resolve(String other)

Преобразовывает данную строку пути в a Path и решения это против этого Path точно способом, определенным resolve метод. Например, предположите, что разделитель имени» / «и путь представляет» foo/bar «, тогда вызов этого метода с путем представляет в виде строки» gus «приведет к Path » foo/bar/gus «.

resolveSibling
Path resolveSibling(Path other)

Разрешает данный путь против этого пути parent путь. Это полезно, где имя файла должно быть заменено другим именем файла. Например, предположите, что разделитель имени» / «и путь представляет» dir1/dir2/foo «, тогда вызывая этот метод с Path » bar «приведет к Path » dir1/dir2/bar «. Если у этого пути нет родительского пути, или other absolute , тогда этот метод возвраты other . Если other пустой путь тогда, этот метод возвращает родителя этого пути, или где у этого пути нет родителя, пустого пути.

resolveSibling
Path resolveSibling(String other)

Преобразовывает данную строку пути в a Path и решения это против этого пути parent путь точно способом, определенным resolveSibling метод.

relativize
Path relativize(Path other)

Создает относительный путь между этим путем и данным путем. Преобразование абсолютных адресов в относительные является инверсией resolution . Этот метод пытается создать a relative путь это, когда resolved против этого пути, приводит к пути, который определяет местоположение того же самого файла как данный путь. Например, на UNIX, если этот путь «/a/b» и данный путь «/a/b/c/d» тогда получающийся относительный путь был бы «c/d» . Где у этого пути и данного пути нет a root компонент, затем относительный путь может быть создан. Относительный путь не может быть создан, если у только одного из путей есть корневой компонент. Где у обоих путей есть корневой компонент тогда, это является зависящим от реализации, если относительный путь может быть создан. Если этот путь и данный путь equal тогда пустой путь возвращается. Для любых двух normalized пути p и q, где у q нет корневого компонента,

p.relativize(p.resolve(q)).equals(q )

Когда символьные ссылки поддерживаются, тогда приводит ли получающийся путь, когда разрешено против этого пути, к пути, который может использоваться, чтобы расположиться same файл как other является зависящим от реализации. Например, если этот путь «/a/b» и данный путь «/a/x» тогда получающийся относительный путь может быть «../x» . Если «b» символьная ссылка, тогда является зависящим от реализации если «a/b/../x» определил бы местоположение того же самого файла как «/a/x» .

toUri
URI toUri()

Возвращает URI, чтобы представить этот путь. Этот метод создает абсолют URI с a scheme равный схеме URI, которая идентифицирует провайдера. Точная форма схемы определенная часть является чрезвычайно зависимым провайдером. В случае провайдера по умолчанию URI является иерархическим с a path компонент, который является абсолютным. Запрос и компоненты фрагмента неопределены. Определяется ли компонент полномочий или не зависящий от реализации. Нет никакой гарантии что URI может использоваться, чтобы создать a java.io.File . В частности если этот путь представляет Универсальное Соглашение о присвоении имен (ПРОТОКОЛ INTERNET) путь, то имя сервера ПРОТОКОЛА INTERNET может быть закодировано в компоненте полномочий получающегося URI. В случае провайдера по умолчанию, и существует файл, и это может быть решено, что файл является каталогом, тогда получающееся URI закончится наклонной чертой. Провайдер по умолчанию обеспечивает подобную гарантию туда и обратно для File класс. Для данного Path p этому гарантируют это

Paths.get ( p.toUri()).equals(p . toAbsolutePath ())

пока оригинал Path , URI , и новое Path все создаются в (возможно различные вызовы) та же самая виртуальная машина Java. Делают ли другие провайдеры какие-либо гарантии, определенный провайдер и поэтому неуказанный. Когда файловая система создается, чтобы получить доступ к содержанию файла как файловая система тогда, это — чрезвычайно реализация, определенная, если возвращенный URI представляет данный путь в файловой системе, или это представляет составной URI, который кодирует URI файловой системы включения. Формат для составных URI не определяется в этом выпуске; такая схема может быть добавлена в будущем выпуске.

toAbsolutePath
Path toAbsolutePath()

Возвраты a Path объект, представляющий абсолютный путь этого пути. Если этот путь уже absolute тогда этот метод просто возвращает этот путь. Иначе, этот метод разрешает путь зависящим от реализации способом, обычно разрешая путь против каталога значения по умолчанию файловой системы. В зависимости от реализации этот метод может бросить ошибку ввода-вывода, если файловая система не доступна.

toRealPath
Path toRealPath(LinkOption. options) throws IOException

Возвращает реальный путь существующего файла. Точное определение этого метода является зависящим от реализации, но вообще это происходит из этого пути, absolute путь, который располагается same файл как этот путь, но с элементами имени, которые представляют подлинное имя каталогов и файла. Например, где сравнения имени файла на файловой системе являются нечувствительными к регистру тогда, элементы имени представляют имена в своем фактическом случае. Дополнительно, получающемуся пути удалили избыточные элементы имени. Если этот путь относителен тогда, его абсолютный путь сначала получается, как будто, вызывая toAbsolutePath метод. options массив может использоваться, чтобы указать, как обрабатываются символьные ссылки. По умолчанию символьные ссылки разрешаются к их заключительной цели. Если опция NOFOLLOW_LINKS присутствует тогда, этот метод не разрешает символьные ссылки. Некоторые реализации позволяют специальные имена такой как» .. «чтобы сослаться на родительский каталог. Получая реальный путь, и» .. «(или эквивалентный) предшествуется не -» .. «назовите тогда реализацию, будет обычно заставлять оба имени быть удаленными. Если не разрешение символьных ссылок и предыдущего имени является символьной ссылкой тогда, имена только удаляются, если это гарантировало, что получающийся путь определит местоположение того же самого файла как этот путь.

toFile
File toFile()

Возвраты a File объект, представляющий этот путь. Где это Path связывается с провайдером по умолчанию, тогда этот метод эквивалентен возврату a File объект, созданный с String представление этого пути. Если этот путь создавался, вызывая File toPath метод тогда нет никакой гарантии что File объект, возвращенный этим методом, equal к оригиналу File .

регистр
WatchKey register(WatchService watcher, WatchEvent.Kind[] events, WatchEvent.Modifier. modifiers) throws IOException
  • ENTRY_CREATE — запись, создаваемая или перемещенная в каталог
  • ENTRY_DELETE — запись, удаленная или перемещенная из каталога
  • ENTRY_MODIFY — запись в каталоге была изменена

context поскольку эти события являются относительным путем между каталогом, расположенным этим путем, и путем, который определяет местоположение записи каталога, которая создается, удаляется, или изменяется.

Набор событий может включать дополнительное определенное событие реализации, которые не определяются перечислением StandardWatchEventKinds

modifiers параметр определяет модификаторы, которые квалифицируют, как каталог регистрируется. Этот выпуск не определяет стандартных модификаторов. Это может содержать реализацию определенные модификаторы.

Где файл регистрируется в службе часов посредством символьной ссылки тогда, это — реализация, определенная, если часы продолжают зависеть от существования символьной ссылки после того, как это регистрируется.

регистр
WatchKey register(WatchService watcher, WatchEvent.Kind. events) throws IOException

Регистрирует файл, расположенный этим путем со службой часов. Вызов этого метода ведет себя точно таким же образом как вызов

watchable.register(watcher, events, new WatchEvent.Modifier[0]);

Пример использования: Предположите, что мы хотим зарегистрироваться, каталог для записи создают, удаляют, и изменяют события:

Path dir = . WatchService watcher = . WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
iterator
IteratorPath> iterator()

Возвращает iterator по элементам имени этого пути. Первый элемент, возвращенный iterator, представляет элемент имени, который является самым близким к корню в иерархии каталогов, второй элемент является следующим самым близким и так далее. Последний возвращенный элемент является именем файла или каталога, обозначенного этим путем. root компонент, если есть не возвращается iterator.

compareTo
int compareTo(Path other)

Сравнивает два абстрактных пути лексикографически. Упорядочивание, определенное этим методом, является определенным провайдером, и в случае провайдера по умолчанию, определенная платформа. Этот метод не получает доступ к файловой системе, и никакой файл не обязан существовать. Этот метод не может использоваться, чтобы сравнить пути, которые связываются с различными провайдерами файловой системы.

равняется
boolean equals(Object other)

Тесты этот путь для равенства с данным объектом. Если данный объект не является Путем, или является Путем, связанным с различным FileSystem , тогда этот метод возвраты false . Соединяют ли два каналом, равны, зависит от реализации файловой системы. В некоторых случаях пути сравниваются без отношения, чтобы случиться, и другие являются чувствительными к регистру. Этот метод не получает доступ к файловой системе, и файл не обязан существовать. Где требующийся, isSameFile метод может использоваться, чтобы проверить, определяют ли два пути местоположение того же самого файла. Этот метод удовлетворяет общий контракт Object.equals метод.

хэш-код
int hashCode()

Вычисляет хэш-код для этого пути. Хэш-код основан на компонентах пути, и удовлетворяет общий контракт Object.hashCode метод.

toString
String toString()

Возвращает строковое представление этого пути. Если этот путь создавался, преобразовывая строку пути, используя getPath метод тогда строка пути, возвращенная этим методом, может отличаться от исходной Строки, используемой, чтобы создать путь. Возвращенная строка пути использует имя по умолчанию separator разделить имена в пути.

Платформа Java™
Стандарт Эд. 7

Представьте ошибку или функцию
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE . Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *