Как указать путь к файлу в Java

Обновлено: 05.07.2024

При работе с файлами в Java важно указывать правильное имя файла, правильный путь и расширение.

Файлы, с которыми мы работаем, могут находиться в том же или другом каталоге. Путь меняется в зависимости от расположения файла.

В этой статье обсуждается, как получить доступ и указать пути к файлам в Java.

Чтение файла Java

Чтение файла означает получение содержимого файла. Мы используем класс Java Scanner для чтения файла. Давайте разберемся в этом на примере.

Сначала мы напишем программу на Java для создания нового файла. Затем мы напишем еще одну программу на Java, чтобы добавить содержимое в этот вновь созданный файл.

Наконец, мы прочитаем содержимое этого файла. Обратите внимание, что ни одна из программ в этой статье не будет работать на онлайн-компиляторе (используйте автономный компилятор с правильно заданным путем).

Создать файл

Этот файл создается в том же каталоге, где находятся файлы Java. Все программные файлы Java находятся в каталоге C.

Добавить содержимое в файл

Прочитать файл

Обратите внимание, что здесь внутри метода File() мы передаем только имя файла с его расширением.

Мы не указываем полный путь к файлу demofile.txt. Демонстрационный файл.txt находится в том же каталоге и папке, где мы сохраняем все эти программные файлы Java.

Однако, если файл demofile.txt находится в другом каталоге или папке, чтение этого файла не так просто. В таких случаях мы указываем полный путь к файлу.

Чтобы получить дополнительные сведения о файловой системе в Java, обратитесь к этой документации.

Как указать путь к файлу в Java

Чтобы указать путь к файлу, мы передаем имя файла с его расширением внутри метода File(). Мы делаем это так.

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

Если вы не знаете имя файла, используйте метод list(). Этот метод возвращает список всех файлов в текущем каталоге.

Присутствующий в классе File библиотеки java.io метод list() возвращает список всех файлов и каталогов в виде массива. Вывод, который он возвращает, основан на текущем каталоге, определяемом абстрактным путем.

Если абстрактный путь не указывает каталог, метод list() возвращает null . Иногда мы не знаем, где находится файл.

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

Чтобы получить точный путь к файлу, используйте приведенные ниже методы.

Как получить путь к файлу в Java

Если мы не знаем путь к файлу, мы можем использовать некоторые методы Java, чтобы найти путь к файлу. Затем мы можем указать этот путь в качестве аргумента.

Java предоставляет три типа путей к файлам: абсолютный, канонический и абстрактный. Класс java.io.file имеет три метода поиска пути к файлу.

Получить путь к файлу с помощью метода getPath() в Java

Метод getPath() принадлежит классу File языка Java. Он возвращает абстрактный путь к файлу в виде строки.

Абстрактное имя пути — это объект java.io.file , который ссылается на файл на диске.

Как видно из приведенного выше вывода, выводом является только имя файла с расширением. Это показывает, что файл находится в той же папке, что и файл программы Java.

Получить путь к файлу с помощью метода getAbsolutePath() в Java

Метод getAbsolutePath() возвращает строку в качестве абсолютного пути к файлу. Если мы создадим файл с абсолютным путем, то метод getAbsolutePath() вернет путь.

Однако, если мы создаем объект, используя относительный путь, метод getAbsolutePath() разрешает имя пути в зависимости от системы. Он присутствует в классе File Java.

Обратите внимание, что абсолютный путь — это путь, который дает полный URL-адрес файла, присутствующего в системе, независимо от того, в каком каталоге он находится. С другой стороны, относительный путь указывает путь файла к текущему каталогу.< /p>

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

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

Таким образом, файл для чтения будет легко найден.

Получить путь к файлу с помощью метода getCanonicalPath() в Java

Присутствие в классе Path возвращает канонический путь к файлу. Если путь канонический, то метод getCanonicalPath() возвращает путь к файлу.

Канонический путь всегда уникален и абсолютен.Более того, этот метод удаляет любые файлы . или .. из пути.

Чтобы узнать больше о путях в Java, обратитесь к этой документации.

Заключение

В этой статье мы увидели, как указать путь к файлу, если нам нужно его прочитать. Мы также изучили различные методы, такие как getPath() , getAbsolutePath() и getCanonical() path, которые предоставляет Java для получения пути к файлу.

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

Однако эти программы не будут работать на сетевых компиляторах.

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме — Java-файл

Статья по теме — Путь Java


сообщить об этом объявлении

Я создал Java-приложение для "Debian Linux". Теперь я хочу, чтобы это приложение читало файл, помещенный в каталог, где указан файл jar этого приложения. Так что же указать в аргументе объекта File?

Что указать в качестве аргумента для приведенного выше оператора, чтобы указать относительный путь к файлу, представляющий путь, по которому был помещен jar-файл приложения?

6 ответов 6

Если вы знаете имя файла, конечно, просто

Если вы не знаете имя, вы можете использовать метод list() объекта File, чтобы получить список файлов в текущем каталоге, а затем выбрать нужный.

Вы спрашиваете о проблемах с escape-символами?

Если это так, используйте прямую косую черту вместо обратной, например

Использование относительных путей в java.io.File полностью зависит от текущего рабочего каталога. Это зависит от того, как вы выполняете JAR. Если вы, например, находитесь в /foo и выполняете JAR с помощью java -jar /bar/jar/Bar.jar, тогда рабочий каталог по-прежнему /foo . Но если вы перейдете в /bar/jar и выполните java -jar Bar.jar, тогда рабочий каталог будет /bar/jar .

Если вам нужен корневой путь, где находится JAR, одним из способов будет:

Это возвращает корневой путь файла JAR (i.o.w. корень пути к классам). Если вы поместите свой ресурс относительно корня пути к классам, вы можете получить к нему доступ следующим образом:

В качестве альтернативы вы также можете просто использовать:

Привет, @Shirgill :) В зависимости от типа сервера развертывание WAR обычно загружает отдельные файлы в память, а не на диск. Поэтому java.io.File, ссылающийся на файл, упакованный в WAR, не всегда будет работать. Прежде чем давать ответ, лучше сначала скажите, для чего именно вам нужен этот Файл и почему не хватает InputStream. Например. возможно, вам это нужно для какого-то стороннего API, который упрямо принимает только File, а не InputStream , например iText PDF.

Да, при создании PDF-файла мне нужно создать объект изображения Image logo = Image.getInstance(path), предоставляемый iText PDF. Я вижу, что есть перегруженный метод, который принимает объект Inputstream. Но другое требование связано с загрузкой файла шрифта (арабский) BaseFont baseNormalFont = BaseFont.createFont(PATH, BaseFont.IDENTITY_H, true); Мне нужно указать путь к тому же файлу. На данный момент я поместил файл в отдельную папку конфигурации в linux, а затем дал путь как System.getProperty(". путь к папке conf") + дальнейший путь к файлу шрифта.

Приведенный выше подход работает хорошо, но он недостижим, если файл является частью проекта maven. Пожалуйста, предложите. Кстати, как вы пришли именно к iText. Вижу, нигде не упомянул :)))

Объект, который может использоваться для поиска файла в файловой системе. Обычно он представляет системный путь к файлу.

Путь представляет собой иерархический путь, состоящий из последовательности элементов имени каталога и файла, разделенных специальным разделителем или разделителем. Также может присутствовать корневой компонент, определяющий иерархию файловой системы. Элемент имени, самый дальний от корня иерархии каталогов, является именем файла или каталога. Другие элементы имени — это имена каталогов. Путь может представлять корень, корень и последовательность имен или просто один или несколько элементов имени. Путь считается пустым путем, если он состоит только из одного пустого элемента имени. Доступ к файлу с использованием пустого пути эквивалентен доступу к каталогу файловой системы по умолчанию. Path определяет методы getFileName , getParent , getRoot и subpath для доступа к компонентам пути или подпоследовательности его элементов имени.

Помимо доступа к компонентам пути, Path также определяет методы разрешения и разрешенияSibling для объединения путей. Метод relativize, который можно использовать для построения относительного пути между двумя путями.Пути можно сравнивать и тестировать друг с другом с помощью методов startWith и endWith.

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

ВНИМАНИЕ! Этот интерфейс предназначен только для тех, кто разрабатывает собственные реализации файловой системы. В будущих версиях к этому интерфейсу могут быть добавлены методы.

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

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

Совместимость

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

Параллельность

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

Краткое описание метода

Методы
Модификатор и тип Метод и описание
int compareTo(путь к другому)

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

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

Преобразует заданную строку пути в путь и сопоставляет ее с этим путем точно так же, как указано в методе разрешения.

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

Проверяет, начинается ли этот путь с Path , созданного путем преобразования заданной строки пути точно так, как указано в методе opensWith(Path).

Сведения о методе

получить файловую систему

абсолютно

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

получить корень

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

получитьимя_файла

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

получитьродитель

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

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

получитьИмяКаунт

получитьИмя

Параметр index — это индекс возвращаемого элемента имени. Элемент, ближайший к корню в иерархии каталогов, имеет индекс 0 . Элемент, который находится наиболее дальнем от корня, имеет число индексов -1 .

подпуть

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

начинается с

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

Начинается ли корневой компонент этого пути с корневого компонента данного пути или нет, зависит от файловой системы.Если этот путь не имеет корневого компонента, а данный путь имеет корневой компонент, то этот путь не начинается с данного пути.

Если данный путь связан с файловой системой, отличной от этого пути, возвращается false.

начинается с

Проверяет, начинается ли этот путь с Path , созданного путем преобразования заданной строки пути точно так, как указано в методе opensWith(Path). Например, в UNIX путь «foo/bar» начинается с «foo» и «foo/bar». Оно не начинается с "f" или "fo".

заканчивается

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

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

Если данный путь связан с файловой системой, отличной от этого пути, возвращается false.

заканчивается

Проверяет, заканчивается ли этот путь Path , созданным путем преобразования заданной строки пути точно так, как указано в методе endWith(Path). Например, в UNIX путь "foo/bar" заканчивается "foo/bar" и "bar". Он не заканчивается на «r» или «/bar». Обратите внимание, что завершающие разделители не учитываются, поэтому вызов этого метода для пути "foo/bar" со строкой "bar/" возвращает значение true .

нормализовать

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

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

решить

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

решить

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

разрешитьСиблинг

Сопоставляет заданный путь с родительским путем этого пути. Это полезно, когда имя файла необходимо заменить другим именем файла. Например, предположим, что разделителем имен является "/", а путь представляет собой "dir1/dir2/foo", тогда вызов этого метода с путем "bar" приведет к получению пути "dir1/dir2/bar". Если этот путь не имеет родительского пути или other является absolute , то этот метод возвращает other . Если other является пустым путем, этот метод возвращает родителя этого пути или, если у этого пути нет родителя, пустой путь.

разрешитьСиблинг

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

относительно

Релятивизация обратна разрешению. Этот метод пытается создать относительный путь, который при разрешении по этому пути дает путь, который находит тот же файл, что и заданный путь. Например, в UNIX, если этот путь — «/a/b», а заданный путь — «/a/b/c/d», тогда результирующий относительный путь будет «c/d». Если этот путь и заданный путь не имеют корневого компонента, то можно построить относительный путь. Относительный путь не может быть построен, если только один из путей имеет корневой компонент.Если оба пути имеют корневой компонент, то возможность построения относительного пути зависит от реализации. Если этот путь и указанный путь совпадают, возвращается пустой путь.

Для любых двух нормализованных путей p и q, где q не имеет корневого компонента,

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

тури

Этот метод создает абсолютный URI со схемой, равной схеме URI, которая идентифицирует поставщика. Точная форма конкретной части схемы сильно зависит от поставщика.

В случае поставщика по умолчанию URI является иерархическим с абсолютным компонентом пути. Компоненты запроса и фрагмента не определены. Определен ли компонент полномочий или нет, зависит от реализации. Нет никакой гарантии, что URI может быть использован для создания java.io.File. В частности, если этот путь представляет путь универсального соглашения об именах (UNC), то имя сервера UNC может быть закодировано в компоненте полномочий результирующего URI. В случае поставщика по умолчанию и файла, который существует и можно определить, что файл является каталогом, результирующий URI будет заканчиваться косой чертой.

Провайдер по умолчанию предоставляет аналогичную гарантию двустороннего обмена для класса File. Для данного пути p гарантируется, что

до тех пор, пока исходный Path , URI и новый Path создаются (возможно, разными вызовами) на одной и той же виртуальной машине Java. Предоставляют ли другие поставщики какие-либо гарантии, зависит от конкретного поставщика и, следовательно, не указано.

Когда файловая система создана для доступа к содержимому файла как к файловой системе, очень сильно зависит от реализации, представляет ли возвращаемый URI заданный путь в файловой системе или представляет собой составной URI, который кодирует URI вложенной файловой системы. Формат составных URI в этом выпуске не определен; такая схема может быть добавлена ​​в будущем выпуске.

к абсолютному пути

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

в реальный путь

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

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

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

в файл

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

Если этот путь был создан путем вызова метода File toPath, то нет гарантии, что объект File, возвращаемый этим методом, идентичен исходному File .

зарегистрироваться

    - запись создана или перемещена в справочник - запись удалена или перемещена из справочника - запись в справочнике изменена

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

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

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

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

зарегистрироваться

Вызов этого метода ведет себя точно так же, как вызов

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

итератор

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

сравнить

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

Этот метод нельзя использовать для сравнения путей, связанных с разными поставщиками файловых систем.

равно

Если данный объект не является путем или является путем, связанным с другой файловой системой, то этот метод возвращает значение false .

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

Этот метод удовлетворяет общему соглашению метода Object.equals.

хэш-код

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

к строке

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

В возвращаемой строке пути используется разделитель имен по умолчанию для разделения имен в пути.

  • Обзор:
  • Вложенный |
  • Поле |
  • Констр |
  • Подробности:
  • Поле |
  • Констр |

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

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

Путь к файлу Java

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

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

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

Пример пути к файлу Java

Давайте рассмотрим различные варианты пути к файлу в Java с помощью простой программы.

На изображении ниже показан вывод, полученный с помощью вышеуказанной программы пути к файлу Java.

 путь к файлу java, путь к файлу в java, абсолютный путь, канонический путь

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

Кроме того, обратите внимание, что методы пути к файлу Java не проверяют, существует файл или нет. Они просто работают с путем к файлу, используемому при создании объекта File. Это все для разных типов пути к файлу в java.

Пример Java FileNameFilter

Разделитель файлов Java, separatorChar, pathSeparator, pathSeparatorChar

Мне нравятся технологии с открытым исходным кодом, и я люблю писать о своем опыте работы с ними.

Комментарии

Я пытаюсь получить полный путь к выбранному файлу.

Ниже приведен код. Пожалуйста, порекомендуйте. Мне нужно передать полный путь и имя файла для выбранных файлов в класс apache pdf box, чтобы получить экстракты Excel.

/*
* Чтобы изменить этот заголовок лицензии, выберите «Заголовки лицензии» в свойствах проекта.
* Чтобы изменить этот файл шаблона, выберите Инструменты | Шаблоны
* и откройте шаблон в редакторе.
*/
пакет com.pdfet.pdfext;
импорт javax.swing.*;
импортировать java.awt.*;
импорт java.awt.event.*;
импорт java.awt.event.ActionListener;
//импорт com.pdfet.pdfext.ExtensionFileFilter;
импорт java.io.File;
импорт javax.swing.filechooser.FileFilter;
/**
*
* @author vak_salem
*/
класс ExtensionFileFilter расширяет FileFilter
String descrip;
Строка расширения[];

public ExtensionFileFilter(String descrip,String Extn)
this(descrip,new String[] );
>
public ExtensionFileFilter(String descrip, String extn[])
if (descrip==null)
this.descrip=extn[0] + “”;
>
еще
this.descrip=descrip;
>
this.extn=(String []) extn.clone();
toLower(this.extn);
>

private void toLower(String array[])
for (int i=0,n=array.length;i Дэмиен Брок говорит:

Попробуйте использовать инструмент "Длинный путь", он действительно может вам в этом помочь.

Должен ли getAbsolutePath разрешать символические ссылки? Согласно этой статье разрешение символических ссылок (которое всегда зависит от системы) происходит только при вызове getCanonicalPath, но простой тестовый пример показывает, что getAbsolutePath также разрешает символические ссылки. У вас есть дополнительная информация об этом?

Это будет работать, но мне нужен путь к внешнему USB-устройству, тогда что нам делать??

При подключении внешнего USB-накопителя он монтируется, и вы можете использовать тот же путь для доступа к файлам на нем.

Комментарии закрыты.

JournalDev — один из самых популярных веб-сайтов, посвященных Java, Python, Android и связанным с ними техническим статьям. Наши учебники регулярно обновляются, не содержат ошибок и полны. Каждый месяц миллионы таких же разработчиков, как и вы, посещают JournalDev, чтобы прочитать наши руководства.

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

Самые популярные

Избранные сайты

© 2021 · Политика конфиденциальности · Условия использования · Свяжитесь с нами · О нас · Часть JournalDev IT Services Private Limited

Читайте также: