Главная страница

Java. Полное руководство. 8-е издание. С. Н. Тригуб Перевод с английского и редакция


Скачать 25.04 Mb.
НазваниеС. Н. Тригуб Перевод с английского и редакция
АнкорJava. Полное руководство. 8-е издание.pdf
Дата28.02.2017
Размер25.04 Mb.
Формат файлаpdf
Имя файлаJava. Полное руководство. 8-е издание.pdf
ТипДокументы
#3236
страница59 из 90
1   ...   55   56   57   58   59   60   61   62   ...   90
true, если вызывающий объект интерфейса
Path является абсолютным. В противном случае возвращает значение f a l s Если путь является абсолютным, возвращается путь.
В противном случае, если путь не содержит корневой каталог, путь предваряется корневым каталогом, определенным вызывающим объектом интерфейса
Path, а результат возвращается. Если путь пуст, возвращается вызывающий объект В противном случае поведение не определено
Если путь является абсолютным, возвращается путь.
В противном случае, если путь не содержит корневой каталог, путь предваряется корневым каталогом, определенным вызывающим объектом
Path, а результат возвращается. Если путь пуст, возвращается вызывающий объект интерфейса В противном случае поведение не определено
Возвращает значение
true, если вызывающий объект интерфейса
Path начинается с пути, определенного аргументом путь.
В противном случае возвращает значение Возвращает значение
true, если вызывающий объект интерфейса
Path начинается с пути, определенного аргументом путь.
В противном случае возвращает значение f a l s Возвращает вызывающий объект интерфейса
Path как абсолютный путь
Возвращает строковое представление вызывающего объекта интерфейса Еще один момент при обновлении устаревшего кода, который использует класс
File, определенный в пакете java.io, можно преобразовать экземпляр класса
File в экземпляр интерфейса, вызвав метод toPath
() для объекта класса
File. Этот метод был добавлен к классу
File в JDK 7. Кроме того, можно получить экземпляр класса
File, вызвав метод toFile
( ), определенный винтер фейсе Класс

F i l e Большинство действий, которые вы выполняете с файлами, представлены статическими методами класса
Files. Файл, с которым осуществляются действия, задает его путь. Таким образом, методы класса
Files используют объект интерфейса
Path, чтобы определить используемый файл. Класс
Files содержит широкое разнообразие функциональных возможностей. Например, у него есть методы, позволяющие открывать или создавать файл, расположенный по определенному пути. Вы можете получить информацию об объекте интерфейса
Path
— исполняемый ли это файл, скрытый или только для чтения. Класс
Files также предостав-

6 4 8 Часть II. Библиотека Java
ляет методы, позволяющие вам копировать или перемещать файлы. Некоторые его методы представлены в табл. 20.6. Кроме исключения
I O E x c e p t i o n , возможна передача и некоторых других исключений.
Таблица 20.6. Некоторые его методы, определенные в классе
F i l e s
Метод
Описание
static Path copy(Path ист наз н ,
CopyOption ... как throws IOException

static Path
createDirectory(Path путь атрибуты throws IOException
static Path createFile (Path Создает файл, путь к которому определяет параметр путь е
At
tribute ...
путь.
Атрибуты файла указаны в параметре атрибуты атрибуты throws Копирует файл, определенный параметром ист, в позицию, указанную параметром назн.
Параметр как определяет, как будет осуществляться копирование
Создает каталог, путь которого определяется параметром путь.
Атрибуты каталога определяет параметр атрибуты void delete(Path
путь throws IOException
static boolean exists(Path путь. парам boolean
isDirectory(Path путь парам boolean
isExecutable(Path путь boolean isHidden(Path путь throws IOException
static boolean
isReadable(Path путь boolean
isRegularFile(Path путь парам boolean
isWritable(Path
путь)
Удаляет файл, путь к которому определяет параметр путь
Возвращает значение
true, если файл, определенный параметром путь существует, и значение
false — в противном случае. Если параметр парам не определен, то используются символические ссылки. Чтобы предотвратить следование по символическим ссылкам, передайте в параметре парам значение
NOFOLLOW_ Возвращает значение
true, если параметр путь определяет каталоги значение
f
al
se
— в противном случае. Если параметр парам не определен, то используются символические ссылки. Чтобы предотвратить следование по символическим ссылкам, передайте в параметре парам значение Возвращает значение
true, если файл, определенный параметром путь является исполняемыми значение
false
— в противном случае
Возвращает значение
true, если файл, определенный параметром путь является скрытыми значение
false
— в противном случае
Возвращает значение
true, если файл, определенный параметром путь,
допускает чтение, и значение
false
— в противном случае
Возвращает значение
true, если параметр путь определяет файл, и значение
false
— в противном случае. Если параметр парам не определен, то используются символические ссылки. Чтобы предотвратить следование по символическим ссылкам, передайте в параметре парам значение Возвращает значение
true, если файл, определенный параметром путь, допускает запись, и значение
f а
1
s е
— в противном случае
Глава 20. Исследование N10
6 4 Окончание табл. 20.6
Метод
Описание
static Path move(Path ист наз н ,
CopyOption ... как путь. как throws

IOException
static DirectoryStream

newDirectoryStream(Path путь throws IOException

static InputStream
newInputStream (Path путь. как throws
IOException
static OutputStream
newOutputStream (Path путь. как путь парам
BasicFileAttributes> A
readAttributes (Path путь
типА трибу та. парам throws

IOException
static long size (Path путь)
throws Перемещает файл, определенный параметром ист, в позицию, указанную параметром назн.
Параметр как определяет, как будет осуществляться копирование
Открывает файл, определенный параметром путь, как указано параметром как.
Возвращает байтовый канал интерфейса
SeekableByteChannel для файла. Текущая позиция этого байтового канала может быть изменена. Интерфейс
SeekableByteChannel реализован классом Открывает каталог, определенный параметром путь. Возвращает объект
Directory
St
ream, связанный с каталогом
Открывает файл, определенный параметром путь, так, как указано параметром как.
Возвращает объект класса
InputStream, связанный с файлом
Открывает файл, определенный вызывающим объектом, как указано параметром как.
Возвращает объект класса
OutputStream, связанный с файлом
Возвращает значение
true, если файл, определенный параметром путь, не существует,
и значение
false — в противном случае. Если параметр парам не определен, то используются символические ссылки. Чтобы предотвратить следование по символическим ссылкам, передайте в параметре парам значение
NOFOLLOW_ Получает атрибуты, связанные с файлом, определенным параметром путь.
Тип передаваемых атрибутов определяется параметром типАтрибута.
Если параметр парам не определен, то используются символические ссылки. Чтобы предотвратить следование по символическим ссылкам, передайте в параметре парам значение Возвращает размер файла, определенного параметром путь Обратите внимание на то, что некоторые методы в табл. 20.6 получают аргумент типа
OpenOption. Это интерфейс, описывающий способ открытия файла. Его реализует класс
StandardOpenOption, определяющий перечисление, значения которого представлены в табл. Таблица 20.7. Стандартные параметры открытия

Значение
Смысл
APPEND
CREATE
CREATE_NEW
D Задает запись вывода вконец файла Задает создание файла, если он еще не существует Задает создание файла, только если он еще не существует Задает удаление файла, когда он закрывается

6 5 Часть II. Библиотека Окончание табл. 20.7
Значение
Смысл
DSYNC
Задает немедленную запись вносимых изменений в физический файл. Обычно, для повышения производительности, изменения в файле буферизируются файловой системой и записываются только при необходимости
READ
Открыть файл для операций ввода
SPARSE
Указывает файловой системе, что файл разрежена значит, он не может быть полностью заполнен данными. Если файловая система не поддерживает разреженные файлы, это значение параметра игнорируется
SYNC
Задает немедленную запись вносимых изменений файла или его метаданных в физический файл. Обычно, для повышения производительности, изменения в файле буферизируются файловой системой и записываются только при необходимости
TRUNCATE_EXISTING
Задает усечение существующего ранее файла при открытии для вывода,
уменьшая его длину до нуля
WRITE
Открывает файл для операций вывода
Класс
P a t h Поскольку
Path
— это интерфейса не класс, вы не можете создать его экземпляр непосредственно, с помощью конструктора. Вместо этого вы получаете объект пути, вызывая метод, который возвращает его. Как правило, для этого используется метод get ()
, определяемый классом
Paths. Существует две формы метода get ()
. Одна, используемая в этой главе, имеет такой вид Path get(String

имяпути,
String ...
части)
Он возвращает объект, инкапсулирующий определенный путь. Путь может быть задан двумя способами. Если параметр части не используется, то путь должен быть полностью определен параметром имяпути. В качестве альтернативы вы можете передать путь по частям, с первой частью в параметре имяпут и ив последующих частях, определенных в аргументе переменной длины параметра части В любом случае, если определенный путь синтаксически недопустим, метод get
() передаст исключение Вторая форма метода get
() создает путь из идентификатора URI и имеет такой вид Path get(URI

u Возвращается путь, соответствующий значению параметра u r i Следует понять, что создание пути к файлу не открывает и не создает файл. В результате просто создается объект, который инкапсулирует путь к каталогу файла.
Интерфейсы атрибутов файла
С файлами связан ряд атрибутов — время создания файла, время его последней модификации, является ли файл каталогом и его размер. Система NIO организует файловые атрибуты в несколько разных интерфейсов. Атрибуты представлены иерархией интерфейсов, определенных в пакете java.nio. file.attribute. Верховным является интерфейс
BasicFileAttributes. Он инкапсулирует набор атрибутов
Глава 20. Исследование N10
6 5 которые обычно используются большинством файловых систем. Методы, определенные в интерфейсе
BasicFileAttributes, представлены в табл. Таблица 20.8. Методы, определенные интерфейсом

BasicFileAttributes
Оййсаяие
Возвращает время создания файла. Если файловая система не поддерживает время создания, то возвращается значение, зависящее от реализации
Возвращает ключ файла. Если это не поддерживается, возвращается значение Возвращает значение
true, если файл представляет собой каталог
Возвращает значение
true, если файл является не файлом, а символической ссылкой или каталогом
Возвращает значение
true, если файл является обычным файлом, а не каталогом или символической ссылкой
Возвращает значение
true, если файл — символическая ссылка
Возвращает время последнего обращения к файлу. Если файловая система не поддерживает время последнего обращения, то возвращается значение, зависящее от реализации
Возвращает время последней модификации файла. Если файловая система не поддерживает время последней модификации, то возвращается значение, зависящее от реализации Возвращает размер файла
От интерфейса е
A11 г i bu t e s происходят два интерфейса
Do s
F i
1 e
-
Attributes и
PosixFileAttributes. Интерфейс описывает атрибуты, связанные с файловой системой FAT, которые ранее были представлены файловой системой DOS. Здесь определены методы, указанные в табл. Таблица 20.9. Методы, определенные интерфейсом
creationTime()
Object f i l e K e y O
boolean
isDirectory()
boolean i s O t h e r O
boolean
isRegularFile()
boolean
isSymbolicLink()
FileTime
lastAccessTime()
FileTime
lastModifiedTime()
long size()
Метод
Описание
boolean Возвращает значение
true, если файл помечен как архивный, и значение
false
— в противном случае Возвращает значение
true, если файл помечен как скрытый, и значение
false
— в противном случае

1
еап Возвращает значение
t
rue, если файл помечен как только для чтения
() и значение
false
— в противном случае

еап is- Возвращает значение
t
rue, если файл помечается как системный, и значение в противном случае______________________________________
Интерфейс
PosixFileAttributes инкапсулирует атрибуты, определенные по стандартам POSIX (Portable Operating System Interface — переносимый интерфейс операционных систем. Здесь определены методы, представленные в табл. 20.10.

6 5 Часть II. Библиотека Таблица 20.10. Методы, определенные интерфейсом o s i x F i l e A t t r i b u t e s
Метод
Описание
GroupPrincipal g r o u p (Возвращает группу владельца файла o w n e r (Возвращает владельца файла p e r m i s s i o n s (Возвращает права файла
Есть разные способы доступа к атрибутам файла. Можно получить объект, который инкапсулирует атрибуты файла, вызвав статический метод readAttrib- utes ()
, определенный в классе
Files. Вот одна из его форм А extends BasicFileAttributes> A readAttributes(Path путь

типАтрибута,
LinkOption... парам throws Этот метод возвращает ссылку на объект, который определяет атрибуты, связанные с файлом, указанным параметром путь Специфический тип атрибутов определяется как объект класса
Class в параметре
типАтрибута. Например, чтобы получить основные атрибуты файла, передайте в параметре
типАтрибута значение
BasicFileAttributes.
class. Для атрибутов DOS используйте значение
DosFileAttributes.
class, а для атрибутов POSIX — значение
PosixFileAttributes .
class. Необязательные параметры ссылки передаются в параметре парам Если он не определен, то используются символические ссылки. Метод возвращает ссылку на требуемый атрибут. Если требуемый тип атрибута недоступен, передается исключение
UnsupportedOperationException. Используя возвращенный объект, вы можете обратиться к атрибутам файла.
Еще один способ доступа к атрибутам файла подразумевает вызов метода get-
FileAttributeView ()
, определенного в классе
Files. Система NIO определяет несколько интерфейсов представления атрибутов, включая
AttributeView,
BasicFileAttributeView, DosFileAttributeView и
PosixFileAttribute-
View, кроме прочих. Хотя мы не будем использовать представления атрибута в этой главе, это средство может оказаться полезным в некоторых ситуациях.
В некоторых случаях вам ненужно будет использовать сами интерфейсы атрибута файла, поскольку класс
Files предоставляет удобные статические методы, позволяющие обращаться к некоторым атрибутам. Например, класс
Files включает такие методы, как isHidden (
) и isWritable (Важно понять, что не все файловые системы поддерживают всевозможные атрибуты. Например, атрибуты файла DOS относятся к файловой системе FAT, хотя сначала они были определены в файловой системе DOS. Те атрибуты, которые относятся к широкому разнообразию файловых систем, описаны в интерфейсе. Поэтому в примерах данной главы используются эти атрибуты.
Классы
F i l e S y s t e m , F i l e S y s t e m s и
F i l e s t o r Комплект JDK 7 облегчает доступ к файловой системе, предоставляя в пакете java. nio. file дополнительные классы
FileSystem и
FileSystems. Фактически, используя метод newFileSystem ()
, определенный в классе
FileSystems, можно даже получить новую файловую систему. Класс
Filestore инкапсулирует систему хранения файла. Хотя эти классы не используются в данной главе непосредственно, вы можете найти их полезными в собственных приложениях
Глава 20. Исследование N10
6 5 Использование системы Этот раздел иллюстрирует применение системы NIO для множества задач. Однако вначале следует подчеркнуть, что с выпуском JDK 7 была существенно расширена как сама система NIO, таки область ее применения. Как упоминалось, усовершенствованная версия иногда называется N10.2. В результате появления системы N10.2 был изменен способ написания кода на базе системы NIO, а также расширен диапазон задач, к которым она может быть применена. В большей части материала и примеров этой главы используются средства системы N10.2, поэтому для работы необходим комплект JDK версии 7 или выше. Однако в конце главы дано краткое описание кода, использованного до JDK 7, — в помощь тем программистам, которые работают с системой доили поддерживают устаревший код.
Помните! Для большинства примеров этой главы требуется комплект JDK Ранее главной задачей системы NIO был канальный ввод-вывод, и это все еще остается ее важнейшей областью применения. Однако теперь вы можете использовать систему NIO и для потокового ввода-вывода, и для выполнения операций файловой системы. В результате обсуждение использования системы NIO делится натри части:
• для канального ввода-вывода;
• для потокового ввода-вывода;
• для операций файловой системы.
Поскольку наиболее распространенным устройством ввода-вывода является диск с файлами, далее в этой главе они и используются. Поскольку все канальные операции с файлами имеют байтовую основу, типом буферов, которые нам предстоит использовать, будет
ByteBuf Прежде чем вы сможете открыть файл для доступа при помощи системы NIO, необходимо получить объект интерфейса
Path, который описывает файл. Один из способов сделать это — вызов метода фабрики
Paths get
( ), который был описан ранее. В приведенных здесь примерах используется такая форма метода get ().
1   ...   55   56   57   58   59   60   61   62   ...   90


написать администратору сайта