Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface UserDefinedFileAttributeView extends FileAttributeView
Это FileAttributeView
обеспечивает представление определяемых пользователем атрибутов файла как ряд пар имя/значение, где название атрибута представляется a String
. Реализация может потребовать, чтобы закодировать и декодировать с платформы или представления файловой системы, получая доступ к атрибуту. У значения есть непрозрачный контент. Это представление атрибута определяет read
и write
методы, чтобы считать значение в или запись от a ByteBuffer
. Это FileAttributeView
не предназначается для использования, где размер значения атрибута больше чем Integer.MAX_VALUE
.
Определяемые пользователем атрибуты могут использоваться в некоторых реализациях, чтобы сохранить безопасность связанные атрибуты так следовательно, в случае провайдера по умолчанию, по крайней мере, все методы, которых доступ определяемые пользователем атрибуты требует RuntimePermission("accessUserDefinedAttributes")
разрешение, когда менеджер безопасности устанавливается.
supportsFileAttributeView
метод может использоваться, чтобы протестировать если определенное FileStore
поддерживает хранение определяемых пользователем атрибутов.
Где динамический доступ к атрибутам файла требуется, getAttribute
метод может использоваться, чтобы считать значение атрибута. Значение атрибута возвращается как байтовый массив (байт []). setAttribute
метод может использоваться, чтобы записать значение определяемого пользователем атрибута от буфера (как будто, вызывая write
метод), или байтовый массив (байт []).
Модификатор и Тип | Метод и Описание |
---|---|
void |
delete(String name)
Удаляет определяемый пользователем атрибут.
|
List<String> |
list()
Возвращает список, содержащий имена определяемых пользователем атрибутов.
|
Строка |
name()
Возвращает имя этого представления атрибута.
|
int |
read(String name, ByteBuffer dst)
Считайте значение определяемого пользователем атрибута в буфер.
|
int |
size(String name)
Возвращает размер значения определяемого пользователем атрибута.
|
int |
write(String name, ByteBuffer src)
Пишет значение определяемого пользователем атрибута от буфера.
|
String name()
"user"
.name
в интерфейсе AttributeView
List<String> list() throws IOException
IOException
- Если ошибка ввода-вывода происходитSecurityException
- В случае провайдера по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission
("accessUserDefinedAttributes") или checkRead
метод отрицает доступ для чтения к файлу.int size(String name) throws IOException
name
- Название атрибутаArithmeticException
- Если размер атрибута больше чем Integer.MAX_VALUE
IOException
- Если ошибка ввода-вывода происходитSecurityException
- В случае провайдера по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission
("accessUserDefinedAttributes") или checkRead
метод отрицает доступ для чтения к файлу.int read(String name, ByteBuffer dst) throws IOException
Этот метод читает значение атрибута в данный буфер как последовательность байтов, перестав работать, если число байтов, остающихся в буфере, недостаточно, чтобы считать полное значение атрибута. Число байтов, переданных в буфер, n
, где n
размер значения атрибута. Первый байт в последовательности по индексу p
и последний байт по индексу p + n - 1
, где p
позиция буфера. По возврату позиция буфера будет равна p + n
; его предел не будет изменяться.
Пример использования: Предположите, что мы хотим считать тип MIME файла, который сохранен как определяемый пользователем атрибут с именем"user.mimetype
".
UserDefinedFileAttributeView view = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class); String name = "user.mimetype"; ByteBuffer buf = ByteBuffer.allocate(view.size(name)); view.read(name, buf); buf.flip(); String value = Charset.defaultCharset().decode(buf).toString();
name
- Название атрибутаdst
- Целевой буферIllegalArgumentException
- Если целевой буфер только для чтенияIOException
- Если ошибка ввода-вывода происходит или есть недостаточное пространство в целевом буфере для значения атрибутаSecurityException
- В случае провайдера по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission
("accessUserDefinedAttributes") или checkRead
метод отрицает доступ для чтения к файлу.size(java.lang.String)
int write(String name, ByteBuffer src) throws IOException
Этот метод пишет значение атрибута от данного буфера как последовательность байтов. Размер значения, чтобы передать r
, где r
число байтов, остающихся в буфере, который является src.remaining()
. Последовательность байтов передается от буферного запуска по индексу p
, где p
позиция буфера. По возврату позиция буфера будет равна p + n
, где n
число переданных байтов; его предел не будет изменяться.
Если атрибут имени уже существует тогда, его значение заменяется. Если атрибут не существует тогда, он создается. Если это реализация, определенная, если тест, чтобы проверить на существование атрибута и создание атрибута является атомарным с repect к другим действиям файловой системы.
Где есть недостаточное пространство, чтобы сохранить атрибут, или название атрибута или значение превышают реализацию определенный максимальный размер тогда IOException
бросается.
Пример использования: Предположите, что мы хотим записать тип MIME файла как определяемый пользователем атрибут:
UserDefinedFileAttributeView view = FIles.getFileAttributeView(path, UserDefinedFileAttributeView.class); view.write("user.mimetype", Charset.defaultCharset().encode("text/html"));
name
- Название атрибутаsrc
- Буфер, содержащий значение атрибутаIOException
- Если ошибка ввода-вывода происходитSecurityException
- В случае провайдера по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission
("accessUserDefinedAttributes") или checkWrite
метод отрицает доступ для записи к файлу.void delete(String name) throws IOException
name
- Название атрибутаIOException
- Если ошибка ввода-вывода происходит, или атрибут не существуетSecurityException
- В случае провайдера по умолчанию устанавливается менеджер безопасности, и это отрицает RuntimePermission
("accessUserDefinedAttributes") или checkWrite
метод отрицает доступ для записи к файлу.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.