Class File

  • All Implemented Interfaces:
    Comparable<File>

    public class File
    extends Object
    implements Comparable<File>
    Файл. Обвертка над файловыми операциями java.nio.file.*.
    Author:
    Kamnev Georgiy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      Path path
      Путь к файлу
    • Constructor Summary

      Constructors 
      Constructor Description
      File​(String filePath, String... more)
      Конструктор
      File​(Path path)
      Конструктор
      File​(File path)
      Конструктор
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SeekableByteChannel channel​(OpenOption... oopts)
      Открывает или создает файл, возвращая поисковый байтовый канал для доступа к файлу.
      SeekableByteChannel channel​(Set<? extends OpenOption> options, FileAttribute<?>... attrs)
      Открывает или создает файл, возвращая поисковый байтовый канал для доступа к файлу.
      int compareTo​(File other)
      Сравнивает два абстрактных пути лексикографически.
      long copyFrom​(InputStream input, CopyOption... copts)
      Копирует все байты из входного потока в файл.
      long copyTo​(OutputStream out)
      Копирует все байты из файла в выходной поток.
      File copyTo​(Path target, CopyOption... copts)
      Скопируйте файл в целевой файл.
      File copyTo​(File target, CopyOption... copts)
      Скопируйте файл в целевой файл.
      File createDirectories​(FileAttribute<?>... attrs)
      Создает каталог, создавая сначала все несуществующие родительские каталоги.
      File createDirectory​(FileAttribute<?>... attrs)
      Создает новый каталог.
      File createFile​(FileAttribute<?>... attrs)
      Создает новый и пустой файл, если файл уже существует.
      File createLink​(Path target)
      Создает новую ссылку (запись в каталоге) для существующего файла (дополнительная операция).
      File createLink​(File target)
      Создает новую ссылку (запись в каталоге) для существующего файла (дополнительная операция).
      File createSymbolicLink​(Path target, FileAttribute<?>... attrs)
      Создает символическую ссылку на цель (дополнительная операция).
      File createSymbolicLink​(File target, FileAttribute<?>... attrs)
      Создает символическую ссылку на цель (дополнительная операция).
      File createTempDirectory​(String prefix, FileAttribute<?>... attrs)
      Создает новый каталог в указанном каталоге, используя префикс для генерации его имени.
      File createTempFile​(String prefix, String suffix, FileAttribute<?>... attrs)
      Создает новый пустой файл в указанном каталоге, используя префикс и суффиксные строки, чтобы сгенерировать его имя.
      void delete()
      Удаляет файл.
      boolean deleteIfExists()
      Удаляет файл, если он существует.
      DirIterator dirIterator()
      Возвращает итератор по каталогу
      List<File> dirList()
      Возвращает список файлов
      boolean endsWith​(String other)
      Проверяет, заканчивается ли этот путь указанным путем.
      boolean endsWith​(Path other)
      Проверяет, заканчивается ли этот путь указанным путем.
      boolean endsWith​(File other)
      Проверяет, заканчивается ли этот путь указанным путем.
      boolean equals​(Object other)
      Проверяет этот путь для равенства с данным объектом.
      boolean exists​(LinkOption... options)
      Проверяет, существует ли файл.
      Object getAttribute​(String attrib, LinkOption... lopts)
      Читает значение атрибута файла.
      String getBasename()
      Базовое имя файла без расширения
      String getExtension()
      Раширение имени файла.
      <V extends FileAttributeView>
      V
      getFileAttributeView​(Class<V> type, LinkOption... lopts)
      Возвращает представление атрибута файла для заданного типа.
      File getFileName()
      Возвращает имя файла или каталога, обозначенного этим путем как объект Path.
      List<File> getFiles()
      Возвращает список дочерних файлов
      FileStore getFileStore()
      Возвращает FileStore, представляющий хранилище файлов, в котором находится файл.
      FileSystem getFileSystem()
      Возвращает файловую систему, создавшую этот объект
      Date getLastModifiedDate​(LinkOption... lopts)
      Возвращает последнее измененное время файла.
      FileTime getLastModifiedTime​(LinkOption... lopts)
      Возвращает последнее измененное время файла.
      String getName()
      Имя файла
      File getName​(int index)
      Возвращает элемент name этого пути как объект Path.
      int getNameCount()
      Возвращает количество элементов name в пути.
      UserPrincipal getOwner​(LinkOption... lopts)
      Возвращает владельца файла.
      File getParent()
      Возвращает родительский путь или null, если этот путь не имеет родителя.
      Set<PosixFilePermission> getPosixFilePermissions​(LinkOption... lopts)
      Возвращает права доступа к файлам POSIX.
      File getRoot()
      Возвращает корневой компонент этого пути как объект Path или null, если этот путь не имеет корневого компонента.
      static List<File> getRootDirectories()
      Возвращает корневые файловые директории для локальной файловой системы
      long getSize()
      Возвращает размер файла (в байтах).
      int hashCode()
      Вычисляет хэш-код для этого пути.
      boolean isAbsolute()
      Указывает, является ли этот путь абсолютным.
      boolean isDir()
      Проверяет, является ли файл каталогом.
      boolean isDirectory​(LinkOption... options)
      Проверяет, является ли файл каталогом.
      boolean isExecutable()
      Проверяет, является ли файл исполняемым.
      boolean isExists()
      Проверяет, существует ли файл.
      boolean isFile()
      Проверяет, является ли файл обычным файлом с непрозрачным контентом.
      boolean isHidden()
      Указывает, считается ли файл скрытым.
      boolean isReadable()
      Проверяет, читается ли файл.
      boolean isRegularFile​(LinkOption... options)
      Проверяет, является ли файл обычным файлом с непрозрачным контентом.
      boolean isSameFile​(Path path2)
      Проверяет, если два пути обнаруживают один и тот же файл.
      boolean isSameFile​(File path2)
      Проверяет, если два пути обнаруживают один и тот же файл.
      boolean isSymbolicLink()
      Проверяет, является ли файл символической ссылкой.
      boolean isWritable()
      Проверяет, доступен ли файл для записи.
      File move​(Path target, CopyOption... copts)
      Переместите или переименуйте файл в целевой файл.
      File move​(File target, CopyOption... copts)
      Переместите или переименуйте файл в целевой файл.
      File normalize()
      Возвращает путь, который является этим путем, при этом исключаются элементы избыточного имени.
      boolean notExists()
      Проверяет, не существует ли файл, расположенный по этому пути.
      boolean notExists​(LinkOption... opts)
      Проверяет, не существует ли файл, расположенный по этому пути.
      String probeContentType()
      Проверяет тип содержимого файла.
      FChannelBuffer randomAccess​(OpenOption... options)
      Открытвает буффер для случайного доступа
      FChannelBuffer randomAccess​(Set<? extends OpenOption> options, FileAttribute<?>... attrs)
      Открытвает буффер для случайного доступа
      byte[] readAllBytes()
      Читает все байты из файла.
      List<String> readAllLines​(String cs)
      Прочитайте все строки из файла.
      List<String> readAllLines​(Charset cs)
      Прочитайте все строки из файла.
      BufferedReader reader​(String cs)
      Открывает файл для чтения, возвращая BufferedReader, который может использоваться для эффективного чтения текста из файла.
      BufferedReader reader​(Charset cs)
      Открывает файл для чтения, возвращая BufferedReader, который может использоваться для эффективного чтения текста из файла.
      InputStream readStream​(OpenOption... opts)
      Открывает файл, возвращая поток ввода для чтения из файла.
      String readText​(String cs)
      Читает тексовое содержание файла.
      String readText​(Charset cs)
      Читает тексовое содержание файла.
      WatchKey register​(WatchService watcher, WatchEvent.Kind<?>... events)  
      WatchKey register​(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)  
      File relativize​(Path other)
      Создает относительный путь между этим путем и заданным путем.
      File relativize​(File other)
      Создает относительный путь между этим путем и заданным путем.
      File resolve​(String other)
      Разрешение пути от текущего (this).
      File resolve​(Path other)
      Разрешение пути от текущего (this).
      File resolve​(File other)
      Разрешение пути от текущего (this).
      File resolveSibling​(String other)  
      File resolveSibling​(Path other)  
      File resolveSibling​(File other)  
      File setAttribute​(String attrib, Object value, LinkOption... lopts)
      Устанавливает значение атрибута файла.
      File setLastModifiedDate​(Date date)
      Обновляет атрибут последнего измененного времени файла.
      File setLastModifiedTime​(FileTime ftime)
      Обновляет атрибут последнего измененного времени файла.
      File setOwner​(UserPrincipal user)
      Обновляет владельца файла.
      File setPosixFilePermissions​(Set<PosixFilePermission> perms)
      Устанавливает разрешения POSIX файла.
      boolean startsWith​(String other)
      Тест, если этот путь начинается с заданного пути.
      boolean startsWith​(Path other)
      Тест, если этот путь начинается с заданного пути.
      boolean startsWith​(File other)
      Тест, если этот путь начинается с заданного пути.
      File subpath​(int beginIndex, int endIndex)
      Возвращает относительный путь, который является подпоследовательностью элементов name этого пути.
      static File tempDirectory​(String prefix, FileAttribute<?>... attrs)
      Создает новый каталог в каталоге временных файлов по умолчанию, используя префикс для генерации его имени.
      static File tempFile​(String prefix, String suffix, FileAttribute<?>... attrs)
      Создает пустой файл в каталоге временных файлов по умолчанию, используя данный префикс и суффикс, чтобы сгенерировать его имя.
      File toAbsolute()  
      File toFile()  
      File toReal​(LinkOption... options)  
      String toString()
      Возвращает строковое представление этого пути.
      URI toUri()  
      URL toUrl()  
      void visit​(xyz.cofe.collection.Visitor<File> visitor)
      Осуществляет обход каталога
      FileTreeBuilder walk()
      Обход дерева каталогов
      File write​(byte[] bytes, OpenOption... oopts)
      Записывает байты в файл.
      File write​(Iterable<? extends CharSequence> lines, String cs, OpenOption... options)
      Пишет строки текста в файл.
      File write​(Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)
      Пишет строки текста в файл.
      BufferedWriter writer​(Charset cs)
      Открывает или создает файл для записи, возвращая BufferedWriter, который может использоваться для эффективного ввода текста в файл.
      OutputStream writeStream​(OpenOption... opts)
      Открывает или создает файл, возвращая выходной поток, который может использоваться для записи байтов в файл.
      void writeText​(String text, String cs)
      Пишет текст в файл с использованием указанной кадировки
      void writeText​(String text, Charset cs)
      Пишет текст в файл с использованием указанной кадировки
    • Field Detail

      • path

        public final Path path
        Путь к файлу
    • Constructor Detail

      • File

        public File​(Path path)
        Конструктор
        Parameters:
        path - путь к файлу
      • File

        public File​(File path)
        Конструктор
        Parameters:
        path - путь к файлу
      • File

        public File​(String filePath,
                    String... more)
        Конструктор
        Parameters:
        filePath - путь к файлу
        more - путь к файлу
    • Method Detail

      • getFileSystem

        public FileSystem getFileSystem()
        Возвращает файловую систему, создавшую этот объект
        Returns:
        файловая система, создавшая этот объект
      • isAbsolute

        public boolean isAbsolute()
        Указывает, является ли этот путь абсолютным. Абсолютный путь завершен в том смысле, что его не нужно комбинировать с другой информацией о пути, чтобы найти файл.
        Returns:
        true, если и только если этот путь является абсолютным
      • getRoot

        public File getRoot()
        Возвращает корневой компонент этого пути как объект Path или null, если этот путь не имеет корневого компонента.
        Returns:
        путь, представляющий корневой компонент этого пути, или null
      • getRootDirectories

        public static List<File> getRootDirectories()
        Возвращает корневые файловые директории для локальной файловой системы
        Returns:
        Корневые директории
      • getFileName

        public File getFileName()
        Возвращает имя файла или каталога, обозначенного этим путем как объект Path. Имя файла является самым дальним элементом из корня в иерархии каталогов.
        Returns:
        путь, представляющий имя файла или каталога, или null, если этот путь имеет нулевые элементы
      • getParent

        public File getParent()
        Возвращает родительский путь или null, если этот путь не имеет родителя.

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

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

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

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

        Returns:
        путь, представляющий родительский путь
      • getNameCount

        public int getNameCount()
        Возвращает количество элементов name в пути.
        Returns:
        количество элементов в пути, или 0, если этот путь представляет только корневой компонент
      • getName

        public File getName​(int index)
        Возвращает элемент name этого пути как объект Path.

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

        Parameters:
        index - индекс элемента
        Returns:
        элемент имени
      • subpath

        public File subpath​(int beginIndex,
                            int endIndex)
        Возвращает относительный путь, который является подпоследовательностью элементов name этого пути.

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

        Parameters:
        beginIndex - индекс первого элемента, включительно
        endIndex - индекс последнего элемента, исключительно
        Returns:
        новый объект File, который является подпоследовательностью элементов name на этом пути
      • startsWith

        public boolean startsWith​(Path other)
        Тест, если этот путь начинается с заданного пути.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь начинается с данного пути; в противном случае
      • startsWith

        public boolean startsWith​(File other)
        Тест, если этот путь начинается с заданного пути.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь начинается с данного пути; в противном случае
      • startsWith

        public boolean startsWith​(String other)
        Тест, если этот путь начинается с заданного пути.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь начинается с данного пути; в противном случае
      • endsWith

        public boolean endsWith​(Path other)
        Проверяет, заканчивается ли этот путь указанным путем.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь заканчивается заданным путем; в противном случае
      • endsWith

        public boolean endsWith​(File other)
        Проверяет, заканчивается ли этот путь указанным путем.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь заканчивается заданным путем; в противном случае
      • endsWith

        public boolean endsWith​(String other)
        Проверяет, заканчивается ли этот путь указанным путем.

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

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

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

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

        Parameters:
        other - данный путь
        Returns:
        true, если этот путь заканчивается заданным путем; в противном случае
      • normalize

        public File normalize()
        Возвращает путь, который является этим путем, при этом исключаются элементы избыточного имени.

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

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

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

        Returns:
        результирующий путь или этот путь, если он не содержит избыточных элементов имени; пустой путь возвращается, если этот путь имеет корневой компонент, а все элементы имени являются избыточными
      • resolve

        public File resolve​(Path other)
        Разрешение пути от текущего (this).

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

        В противном случае этот метод считает этот путь каталогом и разрешает данный путь по этому пути.

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

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

        Parameters:
        other - Путь который следует разрешить
        Returns:
        результирующий путь
      • resolve

        public File resolve​(File other)
        Разрешение пути от текущего (this).

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

        В противном случае этот метод считает этот путь каталогом и разрешает данный путь по этому пути.

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

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

        Parameters:
        other - Путь который следует разрешить
        Returns:
        результирующий путь
      • resolve

        public File resolve​(String other)
        Разрешение пути от текущего (this).

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

        В противном случае этот метод считает этот путь каталогом и разрешает данный путь по этому пути.

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

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

        Parameters:
        other - Путь который следует разрешить
        Returns:
        результирующий путь
      • resolveSibling

        public File resolveSibling​(Path other)
      • resolveSibling

        public File resolveSibling​(File other)
      • resolveSibling

        public File resolveSibling​(String other)
      • relativize

        public File relativize​(Path other)
        Создает относительный путь между этим путем и заданным путем.

        Релятивизация является обратной функцией для разрешения.

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

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

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

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

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

        Parameters:
        other - путь к релятивизации против этого пути
        Returns:
        результирующий относительный путь или пустой путь, если оба пути равны
      • relativize

        public File relativize​(File other)
        Создает относительный путь между этим путем и заданным путем.

        Релятивизация является обратной функцией для разрешения.

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

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

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

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

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

        Parameters:
        other - путь к релятивизации против этого пути
        Returns:
        результирующий относительный путь или пустой путь, если оба пути равны
      • toUri

        public URI toUri()
      • toUrl

        public URL toUrl()
      • toAbsolute

        public File toAbsolute()
      • toFile

        public File toFile()
      • compareTo

        public int compareTo​(File other)
        Сравнивает два абстрактных пути лексикографически.

        Порядок, определенный этим методом, специфичен для провайдера, а в случае поставщика по умолчанию - для конкретной платформы.

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

        Specified by:
        compareTo in interface Comparable<File>
        Parameters:
        other - путь по сравнению с этим путем.
        Returns:
        ноль, если аргумент равен этому пути, значение меньше нуля, если этот путь лексикографически меньше аргумента или значение больше нуля, если этот путь лексикографически больше аргумента
      • equals

        public boolean equals​(Object other)
        Проверяет этот путь для равенства с данным объектом.

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

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

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

        Этот метод удовлетворяет общему договору метода Object.equals.

        Overrides:
        equals in class Object
        Parameters:
        other - объект, которому должен сравниваться этот объект
        Returns:
        true, если и только если данный объект является Путем, который идентичен этому Пути
      • hashCode

        public int hashCode()
        Вычисляет хэш-код для этого пути. Хэш-код основан на компонентах пути и удовлетворяет общему контракту метода Object.hashCode.
        Overrides:
        hashCode in class Object
        Returns:
        значение хэш-кода для этого пути
      • toString

        public String toString()
        Возвращает строковое представление этого пути.

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

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

        Overrides:
        toString in class Object
        Returns:
        строковое представление этого пути
      • getName

        public String getName()
        Имя файла
        Returns:
        Имя файла
      • getExtension

        public String getExtension()
        Раширение имени файла.
        Returns:
        расширение имени файла без точки
      • getBasename

        public String getBasename()
        Базовое имя файла без расширения
        Returns:
        базовое имя файла
      • dirIterator

        public DirIterator dirIterator()
        Возвращает итератор по каталогу
        Returns:
        итератор
      • dirList

        public List<File> dirList()
        Возвращает список файлов
        Returns:
        список файлов
      • getFiles

        public List<File> getFiles()
        Возвращает список дочерних файлов
        Returns:
        список дочерних файлов
      • visit

        public void visit​(xyz.cofe.collection.Visitor<File> visitor)
        Осуществляет обход каталога
        Parameters:
        visitor - функция визитер
      • walk

        public FileTreeBuilder walk()
        Обход дерева каталогов
        Returns:
        создание алгоритма обхода
      • isDirectory

        public boolean isDirectory​(LinkOption... options)
        Проверяет, является ли файл каталогом.

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Где требуется отличать исключение ввода-вывода от случая, когда файл не является каталогом, атрибуты файла могут быть прочитаны с помощью метода readAttributes и типа файла, проверенного с помощью метода BasicFileAttributes.isDirectory.

        Parameters:
        options - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        true, если файл является каталогом; false, если файл не существует, не является каталогом или не может быть определено, является ли файл каталогом или нет.
      • isRegularFile

        public boolean isRegularFile​(LinkOption... options)
        Проверяет, является ли файл обычным файлом с непрозрачным контентом.

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Где требуется отличать исключение ввода-вывода от случая, когда файл не является обычным файлом, тогда атрибуты файла могут быть прочитаны с помощью метода readAttributes и типа файла, проверенного с помощью метода BasicFileAttributes.isRegularFile.

        Parameters:
        options - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        true, если файл является обычным файлом; false, если файл не существует, не является обычным файлом или его невозможно определить, является ли файл обычным файлом или нет.
      • isFile

        public boolean isFile()
        Проверяет, является ли файл обычным файлом с непрозрачным контентом.
        Returns:
        true, если файл является обычным файлом; false, если файл не существует, не является обычным файлом или его невозможно определить, является ли файл обычным файлом или нет.
      • isSymbolicLink

        public boolean isSymbolicLink()
        Проверяет, является ли файл символической ссылкой.

        Где требуется различать исключение ввода-вывода из случая, когда файл не является символической ссылкой, атрибуты файла могут быть прочитаны с помощью метода readAttributes и типа файла, проверенного методом BasicFileAttributes.isSymbolicLink.

        Returns:
        true, если файл является символической ссылкой; false, если файл не существует, не является символической ссылкой или не может быть определено, является ли файл символической ссылкой или нет.
      • isWritable

        public boolean isWritable()
        Проверяет, доступен ли файл для записи.

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

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

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

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

        Returns:
        true, если файл существует и доступен для записи; false, если файл не существует, доступ на запись будет отклонен, поскольку виртуальная машина Java имеет недостаточно привилегий или доступ не может быть определен
      • isSameFile

        public boolean isSameFile​(Path path2)
        Проверяет, если два пути обнаруживают один и тот же файл.

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

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

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

        Он рефлексивен: для пути f isSameFile (f, f) должен возвращать true.
        Он симметричен: для двух путей f и g isSameFile (f, g) будет равно isSameFile (g, f).
        Это транзитивно: для трех путей f, g и h, если isSameFile (f, g) возвращает true и isSameFile (g, h) возвращает true, то isSameFile (g, h) вернет значение true.

        Parameters:
        path2 - другой путь
        Returns:
        true, если и только если два пути обнаруживают один и тот же файл
      • isSameFile

        public boolean isSameFile​(File path2)
        Проверяет, если два пути обнаруживают один и тот же файл.

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

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

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

        Он рефлексивен: для пути f isSameFile (f, f) должен возвращать true.
        Он симметричен: для двух путей f и g isSameFile (f, g) будет равно isSameFile (g, f).
        Это транзитивно: для трех путей f, g и h, если isSameFile (f, g) возвращает true и isSameFile (g, h) возвращает true, то isSameFile (g, h) вернет значение true.

        Parameters:
        path2 - другой путь
        Returns:
        true, если и только если два пути обнаруживают один и тот же файл
      • isDir

        public boolean isDir()
        Проверяет, является ли файл каталогом.

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Returns:
        true, если файл является каталогом; false, если файл не существует, не является каталогом или не может быть определено, является ли файл каталогом или нет.
      • isExecutable

        public boolean isExecutable()
        Проверяет, является ли файл исполняемым.

        Этот метод проверяет, существует ли файл и что эта виртуальная машина Java имеет соответствующие права на файл Runtime.exec.

        При проверке доступа к каталогу семантика может отличаться.

        Например, в системах UNIX проверка наличия доступа проверяет, имеет ли виртуальная машина Java разрешение на поиск в каталоге для доступа к файлу или подкаталогам.

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

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

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

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

        Returns:
        true, если файл существует и является исполняемым; false, если файл не существует, выполнить доступ будет отказано, поскольку виртуальная машина Java имеет недостаточно привилегий или доступ не может быть определен
      • isHidden

        public boolean isHidden()
        Указывает, считается ли файл скрытым.

        Точное определение скрытых зависит от платформы или поставщика.

        Например, в UNIX файл считается скрытым, если его имя начинается с символа периода ('.').

        В Windows файл считается скрытым, если он не является каталогом и установлен атрибут DOS DosFileAttributes.isHidden.

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

        Returns:
        true, если файл считается скрытым
      • isReadable

        public boolean isReadable()
        Проверяет, читается ли файл.

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

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

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

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

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

        Returns:
        true, если файл существует и доступен для чтения; false, если файл не существует, доступ на чтение будет отклонен, поскольку виртуальная машина Java имеет недостаточные права или доступ не может быть определен
      • notExists

        public boolean notExists​(LinkOption... opts)
        Проверяет, не существует ли файл, расположенный по этому пути.

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

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

        По умолчанию используются символические ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

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

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

        Следует соблюдать осторожность при использовании этого метода в чувствительном к безопасности

        Parameters:
        opts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        true, если файл не существует; false, если файл существует или его существование не может быть определено
      • notExists

        public boolean notExists()
        Проверяет, не существует ли файл, расположенный по этому пути.

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

        По умолчанию используются символические ссылки.

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

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

        Следует соблюдать осторожность при использовании этого метода в чувствительном к безопасности

        Returns:
        true, если файл не существует; false, если файл существует или его существование не может быть определено
      • exists

        public boolean exists​(LinkOption... options)
        Проверяет, существует ли файл.

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

        По умолчанию используются символические ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

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

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

        Parameters:
        options - options - опции, указывающие, как обрабатываются символические ссылки.
        Returns:
        true, если файл существует; false, если файл не существует или его существование не может быть определено.
      • isExists

        public boolean isExists()
        Проверяет, существует ли файл.

        По умолчанию используются символические ссылки.

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

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

        Returns:
        true, если файл существует; false, если файл не существует или его существование не может быть определено.
      • getSize

        public long getSize()
        Возвращает размер файла (в байтах).

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

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

        Returns:
        размер файла, в байтах
      • readStream

        public InputStream readStream​(OpenOption... opts)
        Открывает файл, возвращая поток ввода для чтения из файла.

        Поток не буферизуется и не требуется поддерживать методы InputStream.mark или InputStream.reset.

        Поток будет безопасным для доступа несколькими параллельными потоками.

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

        Параметр options определяет способ открытия файла.

        Если параметров нет, это эквивалентно открытию файла с помощью опции READ.

        В дополнение к опции READ, реализация может также поддерживать дополнительные варианты реализации.

        Parameters:
        opts - options - опции, определяющие способ открытия файла
        Returns:
        новый входной поток
      • writeStream

        public OutputStream writeStream​(OpenOption... opts)
        Открывает или создает файл, возвращая выходной поток, который может использоваться для записи байтов в файл.

        Результирующий поток не будет буферизирован.

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

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

        Если параметров нет, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE.

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

        File file = ...
        // обрезаем и перезаписываем существующий файл или создаем файл if
        // он изначально не существует
        OutputStream out = file.writeStream();

        // добавление к существующему файлу, завершение неудачи, если файл не существует
        out = file.writeStream (APPEND);

        // добавляем к существующему файлу, создаем файл, если он изначально не существует
        out = file.writeStream (CREATE, APPEND);

        // всегда создаем новый файл, если он уже существует
        out = file.writeStream (CREATE_NEW);

        Parameters:
        opts - options - опции, определяющие способ открытия файла
        Returns:
        новый выходной поток
      • delete

        public void delete()
        Удаляет файл.

        Для реализации может потребоваться проверка файла, чтобы определить, является ли файл каталогом.

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

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

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

        В таких реализациях каталог считается пустым, когда существуют только специальные записи.

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

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

      • deleteIfExists

        public boolean deleteIfExists()
        Удаляет файл, если он существует.

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

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

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

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

        В таких реализациях каталог считается пустым, когда существуют только специальные записи.

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

        Returns:
        true, если этот файл был удален этим методом; false, если файл не может быть удален, поскольку он не существует
      • createTempFile

        public File createTempFile​(String prefix,
                                   String suffix,
                                   FileAttribute<?>... attrs)
        Создает новый пустой файл в указанном каталоге, используя префикс и суффиксные строки, чтобы сгенерировать его имя.

        Полученный Путь связан с той же FileSystem, что и указанный каталог.

        Информация о том, как сконструировано имя файла, зависит от реализации и поэтому не указана.

        По возможности префикс и суффикс используются для создания имен кандидатов таким же образом, как метод File.createTempFile (String, String, File).

        Как и в методах File.createTempFile, этот метод является лишь частью средства временного файла.

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

        Кроме того, для автоматического удаления файла может использоваться Runtime.addShutdownHook или механизм File.deleteOnExit.

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании файла. Каждый атрибут идентифицируется его FileAttribute.name.

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

        Parameters:
        prefix - префиксную строку, которая будет использоваться при создании имени файла; может быть нулевым
        suffix - строка суффикса, которая будет использоваться при создании имени файла; может быть нулевым, и в этом случае используется «.tmp»
        attrs - необязательный список атрибутов файла для атомарного набора при создании файла
        Returns:
        путь к вновь созданному файлу, который не существовал до этого метода, был вызван
      • tempFile

        public static File tempFile​(String prefix,
                                    String suffix,
                                    FileAttribute<?>... attrs)
        Создает пустой файл в каталоге временных файлов по умолчанию, используя данный префикс и суффикс, чтобы сгенерировать его имя.

        Полученный Путь связан с файловой системой по умолчанию.

        Этот метод работает точно так же, как метод Files.createTempFile (Path, String, String, FileAttribute []) для случая, когда параметр dir является каталогом временных файлов.

        Parameters:
        prefix - префиксную строку, которая будет использоваться при создании имени файла; может быть нулевым
        suffix - строка суффикса, которая будет использоваться при создании имени файла; может быть нулевым, и в этом случае используется «.tmp»
        attrs - необязательный список атрибутов файла для атомарного набора при создании файла
        Returns:
        путь к вновь созданному файлу, который не существовал до этого метода, был вызван
      • createTempDirectory

        public File createTempDirectory​(String prefix,
                                        FileAttribute<?>... attrs)
        Создает новый каталог в указанном каталоге, используя префикс для генерации его имени.

        Полученный Путь связан с той же FileSystem, что и указанный каталог.

        Информация о том, как создается имя каталога, зависит от реализации и поэтому не указана. По возможности префикс используется для создания имен кандидатов.

        Как и в методах createTempFile, этот метод является лишь частью средства временного файла.
        Для автоматического удаления каталога может использоваться Runtime.addShutdownHook или механизм File.deleteOnExit.

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании каталога.

        Каждый атрибут идентифицируется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

        Parameters:
        prefix - префиксную строку, которая будет использоваться при создании имени каталога; может быть нулевым
        attrs - необязательный список атрибутов файла для атомарного набора при создании файла
        Returns:
        путь к вновь созданному каталогу, который не существовал до этого метода
      • tempDirectory

        public static File tempDirectory​(String prefix,
                                         FileAttribute<?>... attrs)
        Создает новый каталог в каталоге временных файлов по умолчанию, используя префикс для генерации его имени.

        Полученный Путь связан с файловой системой по умолчанию.

        Этот метод работает точно так же, как метод Files.createTempDirectory (Path, String, FileAttribute []) для случая, когда параметр dir является файлом временного файла.

        Parameters:
        prefix - префиксную строку, которая будет использоваться при создании имени каталога; может быть нулевым
        attrs - необязательный список атрибутов файла для атомарного набора при создании файла
        Returns:
        путь к вновь созданному каталогу, который не существовал до этого метода
      • createDirectories

        public File createDirectories​(FileAttribute<?>... attrs)
        Создает каталог, создавая сначала все несуществующие родительские каталоги.

        В отличие от метода createDirectory исключение не создается, если каталог не может быть создан, потому что он уже существует.

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

        Каждый атрибут файла определяется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

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

        Parameters:
        attrs - необязательный список атрибутов файла для атомарного набора при создании каталога
        Returns:
        каталог
      • createDirectory

        public File createDirectory​(FileAttribute<?>... attrs)
        Создает новый каталог.

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

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

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании каталога. Каждый атрибут идентифицируется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

        Parameters:
        attrs - необязательный список атрибутов файла для атомарного набора при создании каталога
        Returns:
        каталог
      • createFile

        public File createFile​(FileAttribute<?>... attrs)
        Создает новый и пустой файл, если файл уже существует.

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

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании файла.

        Каждый атрибут идентифицируется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

        Parameters:
        attrs - необязательный список атрибутов файла для атомарного набора при создании
        Returns:
        файл
      • createLink

        public File createLink​(Path target)
        Создает новую ссылку (запись в каталоге) для существующего файла (дополнительная операция).

        Параметр ссылки находит запись каталога для создания.

        Существующий параметр - это путь к существующему файлу.

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

        В некоторых файловых системах это называется созданием «жесткой ссылки».

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

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

        Parameters:
        target - цель куда ссылается
        Returns:
        путь к ссылке (запись в каталоге)
      • createLink

        public File createLink​(File target)
        Создает новую ссылку (запись в каталоге) для существующего файла (дополнительная операция).

        Параметр ссылки находит запись каталога для создания.

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

        В некоторых файловых системах это называется созданием «жесткой ссылки».

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

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

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

        Parameters:
        target - цель куда ссылается
        Returns:
        путь к ссылке (запись в каталоге)
      • createSymbolicLink

        public File createSymbolicLink​(Path target,
                                       FileAttribute<?>... attrs)
        Создает символическую ссылку на цель (дополнительная операция).

        Целевой параметр является целью ссылки.

        Это может быть абсолютный или относительный путь и может не существовать.

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

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании ссылки. Каждый атрибут идентифицируется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

        Там, где поддерживаются символические ссылки, но базовый FileStore не поддерживает символические ссылки, это может завершиться с ошибкой IOException.

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

        Parameters:
        target - цель символической ссылки
        attrs - массив атрибутов, который устанавливается атомарно при создании символической ссылки
        Returns:
        путь к символической ссылке
      • createSymbolicLink

        public File createSymbolicLink​(File target,
                                       FileAttribute<?>... attrs)
        Создает символическую ссылку на цель (дополнительная операция).

        Целевой параметр является целью ссылки.

        Это может быть абсолютный или относительный путь и может не существовать.

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

        Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании ссылки. Каждый атрибут идентифицируется его FileAttribute.name.

        Если в массив включено более одного атрибута с тем же именем, то все, кроме последнего вхождения, игнорируются.

        Там, где поддерживаются символические ссылки, но базовый FileStore не поддерживает символические ссылки, это может завершиться с ошибкой IOException.

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

        Parameters:
        target - цель символической ссылки
        attrs - массив атрибутов, который устанавливается атомарно при создании символической ссылки
        Returns:
        путь к символической ссылке
      • getAttribute

        public Object getAttribute​(String attrib,
                                   LinkOption... lopts)
        Читает значение атрибута файла.

        Параметр атрибута идентифицирует атрибут для чтения и принимает форму:

        [Вид имя:] атрибут-имя

        где квадратные скобки [...] определяют необязательный компонент, а символ «:» обозначает себя.

        view-name - это FileAttributeView.name файла FileAttributeView, который идентифицирует набор атрибутов файла.

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

        attribute-name - это имя атрибута.

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Пример использования.

        Предположим, нам нужен идентификатор пользователя владельца файла в системе, которая поддерживает представление «unix»: File file = ... int uid = (Integer) file.getAttribute ("unix: uid");

        Parameters:
        attrib - атрибут для чтения
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        значение атрибута
      • setAttribute

        public File setAttribute​(String attrib,
                                 Object value,
                                 LinkOption... lopts)
        Устанавливает значение атрибута файла.

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

        [Вид имя:] атрибут-имя

        где квадратные скобки [...] определяют необязательный компонент, а символ «:» обозначает себя.

        view-name - это FileAttributeView.name файла FileAttributeView, который идентифицирует набор атрибутов файла.

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

        attribute-name - это имя атрибута в наборе.

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

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

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

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

        File file = ...
        files.setAttribute ("dos: hidden", true);

        Parameters:
        attrib - атрибут для установки
        value - значение атрибута
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        сам файл
      • getFileAttributeView

        public <V extends FileAttributeView> V getFileAttributeView​(Class<V> type,
                                                                    LinkOption... lopts)
        Возвращает представление атрибута файла для заданного типа.

        Представление атрибута файла предоставляет доступное только для чтения или обновляемое представление набора атрибутов файла.

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

        Параметр type - это тип требуемого вида атрибута, и метод возвращает экземпляр этого типа, если он поддерживается.

        Тип BasicFileAttributeView поддерживает доступ к основным атрибутам файла.

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

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

        По умолчанию используются символические ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

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

        Пример использования:

        предположим, что мы хотим прочитать или установить ACL файла, если он поддерживается:

         File file = ...
         AclFileAttributeView view = Files.getFileAttributeView (путь, AclFileAttributeView.class);
         if (view! = null) {
            List<AclEntry> acl = view.getAcl ();
            ...
         }
         
        Type Parameters:
        V - Тип атрибутов
        Parameters:
        type - объект класса, соответствующий представлению атрибута файла
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        представление атрибута файла указанного типа или null, если тип представления атрибута недоступен
      • getFileStore

        public FileStore getFileStore()
        Возвращает FileStore, представляющий хранилище файлов, в котором находится файл.

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

        В частности, поведение не определено для случая, когда файл удаляется или перемещается в другой хранилище файлов.

        Returns:
        хранилище файлов, в котором хранится файл
      • getLastModifiedTime

        public FileTime getLastModifiedTime​(LinkOption... lopts)
        Возвращает последнее измененное время файла.

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Parameters:
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        FileTime, представляющий время последнего изменения файла, или определенный по умолчанию по умолчанию, когда временная метка, указывающая время последней модификации, не поддерживается файловой системой
      • getLastModifiedDate

        public Date getLastModifiedDate​(LinkOption... lopts)
        Возвращает последнее измененное время файла.

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Parameters:
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        время последнего изменения
      • setLastModifiedTime

        public File setLastModifiedTime​(FileTime ftime)
        Обновляет атрибут последнего измененного времени файла.

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

        Преобразование от более тонких к более крупным деталям приводит к прецизионным потерям.

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

        Это может произойти с ошибкой IOException.

        Parameters:
        ftime - новое значение последнего измененнения
        Returns:
        файл
      • setLastModifiedDate

        public File setLastModifiedDate​(Date date)
        Обновляет атрибут последнего измененного времени файла.

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

        Преобразование от более тонких к более крупным деталям приводит к прецизионным потерям.

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

        Это может произойти с ошибкой IOException.

        Parameters:
        date - новое значение последнего измененнения
        Returns:
        файл
      • getOwner

        public UserPrincipal getOwner​(LinkOption... lopts)
        Возвращает владельца файла.

        Параметр path связан с файловой системой, которая поддерживает FileOwnerAttributeView. Это представление атрибута файла предоставляет доступ к атрибуту файла, который является владельцем файла.

        Parameters:
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        Пользователь-пользователь, представляющий владельца файла
      • setOwner

        public File setOwner​(UserPrincipal user)
        Обновляет владельца файла.

        Параметр path связан с файловой системой, которая поддерживает FileOwnerAttributeView.

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

        Пример использования: предположим, что мы хотим сделать «joe» владельцем файла:

        Путь пути = ... UserPrincipalLookupService lookupService = поставщик (путь) .getUserPrincipalLookupService (); UserPrincipal joe = lookupService.lookupPrincipalByName ("joe"); Files.setOwner (путь, joe);

        Parameters:
        user - Новый владелец файла
        Returns:
        файл
      • getPosixFilePermissions

        public Set<PosixFilePermission> getPosixFilePermissions​(LinkOption... lopts)
        Возвращает права доступа к файлам POSIX.

        Параметр path связан с файловой системой, которая поддерживает PosixFileAttributeView.

        Это представление атрибутов обеспечивает доступ к атрибутам файлов, обычно связанным с файлами файловых систем, используемых операционными системами, которые используют семейство стандартов Portable Operating System Interface (POSIX).

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

        По умолчанию используются символические ссылки и считывается атрибут файла конечной цели ссылки.

        Если присутствует опция NOFOLLOW_LINKS, то символьные ссылки не соблюдаются.

        Parameters:
        lopts - параметры, указывающие, как обрабатываются символические ссылки
        Returns:
        права доступа к файлам
      • setPosixFilePermissions

        public File setPosixFilePermissions​(Set<PosixFilePermission> perms)
        Устанавливает разрешения POSIX файла.

        Параметр path связан с файловой системой, которая поддерживает PosixFileAttributeView.

        Это представление атрибутов обеспечивает доступ к атрибутам файлов, обычно связанным с файлами файловых систем, используемых операционными системами, которые используют семейство стандартов Portable Operating System Interface (POSIX).

        Parameters:
        perms - Новый набор разрешений
        Returns:
        файл
      • move

        public File move​(Path target,
                         CopyOption... copts)
        Переместите или переименуйте файл в целевой файл.

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

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

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

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

        Например, переименование каталога в том же FileStore, как правило, не требует перемещения записей в каталоге.

        При перемещении каталога требуется, чтобы его записи были перемещены, тогда этот метод завершился неудачно (путем исключения исключения IOException).

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

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

        • REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, вместо него заменяется сама символическая ссылка, а не цель ссылки.
        • ATOMIC_MOVE Перемещение выполняется как операция с файловой системой атома, и все остальные параметры игнорируются.

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

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

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

        Если для перемещения требуется скопировать файл, то файл BasicFileAttributes.lastModifiedTime будет скопирован в новый файл.

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

        Когда перемещение выполняется как неатомная операция, и генерируется исключение IOException, состояние файлов не определяется.

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

        Примеры использования.

        Предположим, мы хотим переименовать файл в «новое имя», сохранив файл в том же каталоге: Источник пути = ... Files.move (source, source.resolveSibling ("newname")); В качестве альтернативы предположим, что мы хотим переместить файл в новый каталог, сохранив одно и то же имя файла и заменив любой существующий файл этого имени в каталоге: Источник пути = ... Путь newdir = ... Files.move (source, newdir.resolve (source.getFileName ()), REPLACE_EXISTING);

        Parameters:
        target - путь к целевому файлу (может быть связан с другим провайдером с исходным путем)
        copts - варианты, указывающие, как следует переименовывать
        Returns:
        путь к целевому файлу
      • move

        public File move​(File target,
                         CopyOption... copts)
        Переместите или переименуйте файл в целевой файл.

        По умолчанию этот метод пытается переместить файл в целевой файл, если он не существует, если целевой файл существует, за исключением случаев, когда источник и цель являются одним и тем же файлом, и в этом случае этот метод не влияет. Если файл является символической ссылкой, перемещается сама символическая ссылка, а не цель ссылки. Этот метод можно вызвать, чтобы переместить пустой каталог. В некоторых реализациях каталог имеет записи для специальных файлов или ссылок, которые создаются при создании каталога. В таких реализациях каталог считается пустым, когда существуют только специальные записи. При вызове для перемещения каталога, который не является пустым, каталог перемещается, если он не требует перемещения записей в каталоге. Например, переименование каталога в том же FileStore, как правило, не требует перемещения записей в каталоге. При перемещении каталога требуется, чтобы его записи были перемещены, тогда этот метод завершился неудачно (путем исключения исключения IOException). Для перемещения дерева файлов может потребоваться копирование, а не перемещение каталогов, и это можно сделать с помощью метода копирования в сочетании с утилитой Files.walkFileTree. Параметр параметров может включать в себя любое из следующего: REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, вместо него заменяется сама символическая ссылка, а не цель ссылки. ATOMIC_MOVE Перемещение выполняется как операция с файловой системой атома, и все остальные параметры игнорируются. Если целевой файл существует, то он специфичен для реализации, если существующий файл заменен или этот метод терпит неудачу, выбрасывая исключение IOException. Если перемещение не может выполняться как операция с использованием атомной файловой системы, то вызывается AtomicMoveNotSupportedException. Это может возникнуть, например, когда целевое местоположение находится в другом файловом хранилище и требует, чтобы файл был скопирован, или целевое местоположение связано с другим поставщиком этого объекта. Реализация этого интерфейса может поддерживать дополнительные варианты реализации. Если для перемещения требуется скопировать файл, то файл BasicFileAttributes.lastModifiedTime будет скопирован в новый файл. Реализация также может попытаться скопировать другие атрибуты файла, но не требуется сбой, если атрибуты файла не могут быть скопированы. Когда перемещение выполняется как неатомная операция, и генерируется исключение IOException, состояние файлов не определяется. Исходный файл и целевой файл могут существовать, целевой файл может быть неполным или некоторые его атрибуты файла не могут быть скопированы из исходного файла. Примеры использования. Предположим, мы хотим переименовать файл в «новое имя», сохранив файл в том же каталоге: Источник пути = ... Files.move (source, source.resolveSibling ("newname")); В качестве альтернативы предположим, что мы хотим переместить файл в новый каталог, сохранив одно и то же имя файла и заменив любой существующий файл этого имени в каталоге: Источник пути = ... Путь newdir = ... Files.move (source, newdir.resolve (source.getFileName ()), REPLACE_EXISTING);

        Parameters:
        target - путь к целевому файлу (может быть связан с другим провайдером с исходным путем)
        copts - варианты, указывающие, как следует переименовывать
        Returns:
        путь к целевому файлу
      • copyFrom

        public long copyFrom​(InputStream input,
                             CopyOption... copts)
        Копирует все байты из входного потока в файл.

        По возвращении входной поток будет в конце потока.

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

        В этом выпуске опция REPLACE_EXISTING является единственным вариантом, который должен поддерживаться этим методом.

        Дополнительные опции могут поддерживаться в будущих выпусках.

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

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

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

        Пример использования: предположим, что мы хотим захватить веб-страницу и сохранить ее в файле:

         File file = ...
         URI u = URI.create ("http://java.sun.com/");
         try (InputStream input = u.toURL().openStream ()) {
            file.copy (input);
         }
         
        Parameters:
        input - входной поток для чтения
        copts - параметры, указывающие, как должна выполняться копия
        Returns:
        количество прочитанных или записанных байтов
      • copyTo

        public long copyTo​(OutputStream out)
        Копирует все байты из файла в выходной поток.

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

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

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

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

        Parameters:
        out - выходной поток для записи
        Returns:
        количество прочитанных или записанных байтов
      • copyTo

        public File copyTo​(Path target,
                           CopyOption... copts)
        Скопируйте файл в целевой файл.

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

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

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

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

        • REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, вместо него заменяется сама символическая ссылка, а не цель ссылки.
        • COPY_ATTRIBUTES Попытка скопировать атрибуты файла, связанные с этим файлом, в целевой файл. Точные атрибуты файлов, которые копируются, зависят от платформы и файловой системы и поэтому не указаны. В минимальном случае значение BasicFileAttributes.lastModifiedTime копируется в целевой файл, если поддерживается как хранилищем источника, так и целевым файлом. Копирование временных меток файла может привести к потере точности.
        • NOFOLLOW_LINKS Символические ссылки не соблюдаются. Если файл является символической ссылкой, копируется сама символическая ссылка, а не цель ссылки. Это специфично для реализации, если атрибуты файлов можно скопировать в новую ссылку. Другими словами, параметр COPY_ATTRIBUTES может игнорироваться при копировании символической ссылки.
        Реализация этого интерфейса может поддерживать дополнительные варианты реализации.

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

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

        Пример использования:
        предположим, что мы хотим скопировать файл в каталог, указав ему то же имя файла, что и исходный файл: File source = ... File newdir = ... source.copy(newdir.resolve(source.getFileName());

        Parameters:
        target - путь к файлу для копирования
        copts - параметры, указывающие, как должна выполняться копия
        Returns:
        путь к целевому файлу
      • copyTo

        public File copyTo​(File target,
                           CopyOption... copts)
        Скопируйте файл в целевой файл.

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

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

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

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

        • REPLACE_EXISTING Если целевой файл существует, то целевой файл заменяется, если он не является непустым каталогом. Если целевой файл существует и является символической ссылкой, вместо него заменяется сама символическая ссылка, а не цель ссылки.
        • COPY_ATTRIBUTES Попытка скопировать атрибуты файла, связанные с этим файлом, в целевой файл. Точные атрибуты файлов, которые копируются, зависят от платформы и файловой системы и поэтому не указаны. В минимальном случае значение BasicFileAttributes.lastModifiedTime копируется в целевой файл, если поддерживается как хранилищем источника, так и целевым файлом. Копирование временных меток файла может привести к потере точности.
        • NOFOLLOW_LINKS Символические ссылки не соблюдаются. Если файл является символической ссылкой, копируется сама символическая ссылка, а не цель ссылки. Это специфично для реализации, если атрибуты файлов можно скопировать в новую ссылку. Другими словами, параметр COPY_ATTRIBUTES может игнорироваться при копировании символической ссылки.
        Реализация этого интерфейса может поддерживать дополнительные варианты реализации.

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

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

        Пример использования:
        предположим, что мы хотим скопировать файл в каталог, указав ему то же имя файла, что и исходный файл: File source = ... File newdir = ... source.copy(newdir.resolve(source.getFileName());

        Parameters:
        target - путь к файлу для копирования
        copts - параметры, указывающие, как должна выполняться копия
        Returns:
        путь к целевому файлу
      • probeContentType

        public String probeContentType()
        Проверяет тип содержимого файла.

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

        Каждый тип FileTypeDetector.probeContentType детектора типа файла, в свою очередь, вызывается для поиска типа файла.

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

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

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

        Детекторы типа файла обычно устанавливаются путем размещения их в файле JAR в CLASSPATH приложения или в каталоге расширения, файл JAR содержит файл конфигурации поставщика с именем java.nio.file.spi.FileTypeDetector в каталоге ресурсов META-INF / services, а в файле перечислены одно или несколько полностью определенных имен конкретного подкласса FileTypeDetector, которые имеют конструктор нулевого аргумента.

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

        Порядок размещения установленных провайдеров является специфичным для реализации.

        Возвращаемое значение этого метода представляет собой строковую форму значения типа содержимого многопользовательской интернет-почты (MIME), как определено RFC 2045: Многоцелевые расширения электронной почты Интернета (MIME).

        Часть первая: формат интернет-сообщений. Строка гарантированно может быть проанализирована в соответствии с грамматикой в ​​RFC.

        Returns:
        Тип содержимого файла или null, если тип содержимого не может быть определен
      • reader

        public BufferedReader reader​(Charset cs)
        Открывает файл для чтения, возвращая BufferedReader, который может использоваться для эффективного чтения текста из файла.

        Байты из файла декодируются в символы с использованием указанной кодировки. Чтение начинается в начале файла.

        Методы Reader, которые читают из файла, вызывают исключение IOException, если считывается некорректная или неуправляемая последовательность байтов.

        Parameters:
        cs - кодировка
        Returns:
        новый буферный считыватель с размером буфера по умолчанию для чтения текста из файла
      • reader

        public BufferedReader reader​(String cs)
        Открывает файл для чтения, возвращая BufferedReader, который может использоваться для эффективного чтения текста из файла.

        Байты из файла декодируются в символы с использованием указанной кодировки. Чтение начинается в начале файла.

        Методы Reader, которые читают из файла, вызывают исключение IOException, если считывается некорректная или неуправляемая последовательность байтов.

        Parameters:
        cs - кодировка
        Returns:
        новый буферный считыватель с размером буфера по умолчанию для чтения текста из файла
      • writer

        public BufferedWriter writer​(Charset cs)
        Открывает или создает файл для записи, возвращая BufferedWriter, который может использоваться для эффективного ввода текста в файл.

        Параметр options указывает, как файл создается или открывается. Если параметров нет, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE.

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

        Методы Writer для записи текста IOException, если текст не может быть закодирован с использованием указанной кодировки.

        Parameters:
        cs - кодировка
        Returns:
        новый буферный писатель с размером буфера по умолчанию для записи текста в файл
      • channel

        public SeekableByteChannel channel​(OpenOption... oopts)
        Открывает или создает файл, возвращая поисковый байтовый канал для доступа к файлу.

        Этот метод открывает или создает файл точно таким же образом, как метод newByteChannel.

        Parameters:
        oopts - параметры, определяющие способ открытия файла
        Returns:
        новый доступный байтовый канал
      • channel

        public SeekableByteChannel channel​(Set<? extends OpenOption> options,
                                           FileAttribute<?>... attrs)
        Открывает или создает файл, возвращая поисковый байтовый канал для доступа к файлу.

        Параметр options определяет способ открытия файла.
        Опции READ и WRITE определяют, должен ли файл быть открыт для чтения и / или записи.
        Если ни один из параметров (или параметр APPEND) не присутствует, файл открывается для чтения.
        По умолчанию чтение или запись начинаются в начале файла.
        В дополнение к READ и WRITE могут присутствовать следующие параметры:

        • APPEND Если эта опция присутствует, файл открывается для записи, и каждый вызов метода записи канала сначала продвигает позицию до конца файла, а затем записывает запрошенные данные. Независимо от того, выполняется ли продвижение позиции и запись данных в одной атомной операции, зависит от системы и, следовательно, не определена. Этот параметр не может использоваться в сочетании с параметрами READ или TRUNCATE_EXISTING.
        • TRUNCATE_EXISTING Если этот параметр присутствует, существующий файл усекается до размера 0 байтов. Эта опция игнорируется, когда файл открывается только для чтения.
        • CREATE_NEW Если этот параметр присутствует, создается новый файл, если он не существует или является символической ссылкой. При создании файла проверка наличия файла и создание файла, если он не существует, является атомарным относительно других действий файловой системы. Эта опция игнорируется, когда файл открывается только для чтения.
        • CREATE Если этот параметр присутствует, тогда существующий файл открывается, если он существует, в противном случае создается новый файл. Этот параметр игнорируется, если присутствует опция CREATE_NEW или файл открывается только для чтения.
        • DELETE_ON_CLOSE Когда этот параметр присутствует, реализация выполняет попытку удалить файл при закрытии методом SeekableByteChannel.close. Если метод close не вызывается, предпринимается попытка с максимальной эффективностью удалить файл при завершении виртуальной машины Java.
        • SPARSE При создании нового файла этот параметр является подсказкой о том, что новый файл будет разреженным. Этот параметр игнорируется, если не создается новый файл.
        • SYNC Требуется, чтобы каждое обновление содержимого или метаданных файла было записано синхронно с основным запоминающим устройством. (см. «Синхронизированная целостность файла ввода / вывода»).
        • DSYNC Требуется, чтобы каждое обновление содержимого файла записывалось синхронно с базовым устройством хранения. (см. «Синхронизированная целостность файла ввода / вывода»).
        Реализация также может поддерживать дополнительные варианты реализации. Параметр attrs является необязательным атрибутом FileAttribute для атомарного набора при создании нового файла.

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

        Примеры использования:

        File file = ...
        // открыть файл для чтения
        ReadableByteChannel rbc = file.channel (EnumSet.of(READ));

        // открываем файл для записи в конец существующего файла, создавая
        // файл, если он еще не существует
        WritableByteChannel wbc = file.channel (EnumSet.of(CREATE, APPEND));

        // создаем файл с начальными разрешениями, открывая его для чтения и записи
        FileAttribute<SetPosixFilePermission> perms = ...
        SeekableByteChannel sbc = file.channel (EnumSet.of(CREATE_NEW, READ, WRITE), perms);

        Parameters:
        options - Опции открытия
        attrs - необязательный список атрибутов файла для атомарного набора при создании файла
        Returns:
        новый доступный байтовый канал
      • readAllBytes

        public byte[] readAllBytes()
        Читает все байты из файла.

        Метод гарантирует, что файл закрыт, когда все байты были прочитаны или ошибка ввода-вывода или другое исключение среды выполнения.

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

        Он не предназначен для чтения в больших файлах.

        Returns:
        массив байтов, содержащий байты, считанные из файла
      • write

        public File write​(byte[] bytes,
                          OpenOption... oopts)
        Записывает байты в файл.

        Параметр options указывает, как файл создается или открывается.

        Если параметров нет, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE.

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

        Все байты в массиве байтов записываются в файл.

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

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

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

         File file = ...
         byte [] bytes = ...
         file.write (bytes, StandardOpenOption.APPEND);
         
        Parameters:
        bytes - массив байтов с байтами для записи
        oopts - параметры, определяющие способ открытия файла
        Returns:
        файл
      • readAllLines

        public List<String> readAllLines​(Charset cs)
        Прочитайте все строки из файла.

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

        Байты из файла декодируются в символы с использованием указанной кодировки.

        Этот метод распознает следующие термины:

        • u000D, за которым следует u000A, CARRIAGE RETURN, а затем LINE FEED
        • u000A, LINE FEED
        • u000D, CARRIAGE RETURN
        Дополнительные терминаторы линий Unicode могут быть распознаны в будущих выпусках.

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

        Он не предназначен для чтения в больших файлах.

        Parameters:
        cs - Кодировка
        Returns:
        строки текста
      • readAllLines

        public List<String> readAllLines​(String cs)
        Прочитайте все строки из файла.

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

        Байты из файла декодируются в символы с использованием указанной кодировки.

        Этот метод распознает следующие термины:

        • u000D, за которым следует u000A, CARRIAGE RETURN, а затем LINE FEED
        • u000A, LINE FEED
        • u000D, CARRIAGE RETURN
        Дополнительные терминаторы линий Unicode могут быть распознаны в будущих выпусках.

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

        Он не предназначен для чтения в больших файлах.

        Parameters:
        cs - Кодировка
        Returns:
        строки текста
      • readText

        public String readText​(Charset cs)
        Читает тексовое содержание файла.

        Он не предназначен для чтения больших файлов.

        Parameters:
        cs - кодировка текста
        Returns:
        Содержание
      • readText

        public String readText​(String cs)
        Читает тексовое содержание файла.

        Он не предназначен для чтения больших файлов.

        Parameters:
        cs - кодировка текста
        Returns:
        Содержание
      • writeText

        public void writeText​(String text,
                              Charset cs)
        Пишет текст в файл с использованием указанной кадировки
        Parameters:
        text - текст
        cs - Кодировка
      • writeText

        public void writeText​(String text,
                              String cs)
        Пишет текст в файл с использованием указанной кадировки
        Parameters:
        text - текст
        cs - Кодировка
      • write

        public File write​(Iterable<? extends CharSequence> lines,
                          Charset cs,
                          OpenOption... options)
        Пишет строки текста в файл.

        Каждая строка представляет собой последовательность символов и записывается в файл последовательно с каждой строкой, завершаемой разделителем строк платформы, как определено системным свойством line.separator.

        Символы кодируются в байты с использованием указанной кодировки.

        Параметр options указывает, как файл создается или открывается. Если параметров нет, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE.

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

        Метод гарантирует, что файл будет закрыт, когда все строки будут записаны ( или ошибка ввода-вывода или другое исключение среды выполнения).

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

        Parameters:
        lines - строки текста
        cs - Кодировка
        options - Опции
        Returns:
        файл
      • write

        public File write​(Iterable<? extends CharSequence> lines,
                          String cs,
                          OpenOption... options)
        Пишет строки текста в файл.

        Каждая строка представляет собой последовательность символов и записывается в файл последовательно с каждой строкой, завершаемой разделителем строк платформы, как определено системным свойством line.separator.

        Символы кодируются в байты с использованием указанной кодировки.

        Параметр options указывает, как файл создается или открывается. Если параметров нет, этот метод работает так, как если бы присутствовали опции CREATE, TRUNCATE_EXISTING и WRITE.

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

        Метод гарантирует, что файл будет закрыт, когда все строки будут записаны ( или ошибка ввода-вывода или другое исключение среды выполнения).

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

        Parameters:
        lines - строки текста
        cs - Кодировка
        options - Опции
        Returns:
        файл
      • randomAccess

        public FChannelBuffer randomAccess​(OpenOption... options)
        Открытвает буффер для случайного доступа
        Parameters:
        options - опции
        Returns:
        буфер
      • randomAccess

        public FChannelBuffer randomAccess​(Set<? extends OpenOption> options,
                                           FileAttribute<?>... attrs)
        Открытвает буффер для случайного доступа
        Parameters:
        options - опции
        attrs - атрибуты
        Returns:
        буфер