Spec-Zone .ru
спецификации, руководства, описания, API
|
До Java SE 7 выпусков, java.io.File
class был механизмом, используемым для файлового ввода-вывода, но у этого было несколько недостатков.
rename
метод последовательно не работал через платформы.File
методы не масштабировались. Запрос большого перечисления каталога по серверу мог привести к подвешиванию. Большие каталоги могли также вызвать проблемы ресурса памяти, приводящие к отказу службы.Возможно, у Вас есть код наследства, который использует java.io.File
и хотел бы использовать в своих интересах java.nio.file.Path
функциональность с минимальным воздействием к Вашему коду.
java.io.File
class обеспечивает toPath
метод, который преобразовывает старый стиль File
экземпляр к a java.nio.file.Path
экземпляр, следующим образом:
Path input = file.toPath();
Можно тогда использовать в своих интересах богатый набор функций, доступный Path
class.
Например, предположите, что у Вас был некоторый код, который удалил файл:
file.delete();
Вы могли изменить этот код, чтобы использовать Files.delete
метод, следующим образом:
Path fp = file.toPath(); Files.delete(fp);
Наоборот, Path.toFile
java.io.File
объект для a Path
объект.
Поскольку реализация Java файлового ввода-вывода была полностью повторно спроектирована в Java SE 7 выпусков, невозможно подкачать один метод для другого метода. Если Вы хотите использовать богатую функциональность, предлагаемую java.nio.file
пакет, Ваше самое легкое решение состоит в том, чтобы использовать File.toPath
Между этими двумя API нет никакого взаимно-однозначного соответствия, но следующая таблица дает Вам общее представление о какой функциональность в java.io.File
API отображается на в java.nio.file
API и говорит Вам, где можно получить больше информации.
java.io. Функциональность файла | Функциональность java.nio.file | Учебное Покрытие |
---|---|---|
java.io.File |
java.nio.file.Path |
|
java.io.RandomAccessFile |
SeekableByteChannel функциональность. |
Файлы Произвольного доступа |
File.canRead , canWrite , canExecute |
Files.isReadable , Files.isWritable , и Files.isExecutable .На файловых системах UNIX Управляющие Метаданные (Хранилище файлов и Атрибуты Хранилища файлов) пакет используется, чтобы проверить девять полномочий файла. |
Проверка Файла или каталога Управление Метаданными |
File.isDirectory() , File.isFile() , и File.length() |
Files.isDirectory(Path, LinkOption...) , Files.isRegularFile(Path, LinkOption...) , и Files.size(Path) |
Управление Метаданными |
File.lastModified() и File.setLastModified(long) |
Files.getLastModifiedTime(Path, LinkOption...) и Files.setLastMOdifiedTime(Path, FileTime) |
Управление Метаданными |
File методы, которые устанавливают различные атрибуты: setExecutable , setReadable , setReadOnly , setWritable |
Эти методы заменяются Files метод setAttribute(Path, String, Object, LinkOption...) . |
Управление Метаданными |
new File(parent, "newfile") |
parent.resolve("newfile") |
Операции пути |
File.renameTo |
Files.move |
Перемещение Файла или каталога |
File.delete |
Files.delete |
Удаление Файла или каталога |
File.createNewFile |
Files.createFile |
Создание Файлов |
File.deleteOnExit |
Замененный DELETE_ON_CLOSE опция, определенная в createFile метод. |
Создание Файлов |
File.createTempFile |
Files.createTempFile(Path, String, FileAttributes<?>) , Files.createTempFile(Path, String, String, FileAttributes<?>) |
Создание Файлов Создание и Запись Файла при использовании Потокового ввода-вывода Чтение и Запись Файлов при использовании ввода-вывода Канала |
File.exists |
Files.exists и Files.notExists |
Проверка Существования Файла или каталога |
File.compareTo и equals |
Path.compareTo и equals |
Сравнение Двух Путей |
File.getAbsolutePath и getAbsoluteFile |
Path.toAbsolutePath |
Преобразование Пути |
File.getCanonicalPath и getCanonicalFile |
Path.toRealPath или normalize |
Преобразование Пути (toRealPath )Удаление Избыточности От Пути ( normalize ) |
File.toURI |
Path.toURI |
Преобразование Пути |
File.isHidden |
Files.isHidden |
Получение информации О Пути |
File.list и listFiles |
Path.newDirectoryStream |
Перечисление Содержания Каталога |
File.mkdir и mkdirs |
Path.createDirectory |
Создание Каталога |
File.listRoots |
FileSystem.getRootDirectories |
Перечисление Корневых каталогов Файловой системы |
File.getTotalSpace , File.getFreeSpace , File.getUsableSpace |
FileStore.getTotalSpace , FileStore.getUnallocatedSpace , FileStore.getUsableSpace , FileStore.getTotalSpace |
Атрибуты Хранилища файлов |