Spec-Zone .ru
спецификации, руководства, описания, API
|
public class XMLEncoder extends Encoder implements AutoCloseable
XMLEncoder
класс является дополнительной альтернативой ObjectOutputStream
и может используемый, чтобы генерировать текстовое представление JavaBean таким же образом что ObjectOutputStream
может использоваться, чтобы создать двоичное представление Serializable
объекты. Например, следующий фрагмент может использоваться, чтобы создать текстовое представление предоставленный JavaBean и все его свойства: XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new FileOutputStream("Test.xml"))); e.writeObject(new JButton("Hello, world")); e.close();Несмотря на подобие их API,
XMLEncoder
класс исключительно разрабатывается с целью архивирования графиков JavaBeans как текстовые представления их общедоступных свойств. Как исходные файлы Java, документы, записанные этот путь, имеют врожденный иммунитет к изменениям в реализациях включенных классов. ObjectOutputStream
продолжает рекомендоваться для межпроцессного взаимодействия и сериализации общего назначения. XMLEncoder
класс предоставляет обозначение по умолчанию JavaBeans, в котором они представляются как XML-документы, выполняющие версию 1.0 спецификации XML и кодировку символов UTF-8 Unicode/ISO 10646 наборов символов. XML-документы, произведенные XMLEncoder
класс:
XMLEncoder
класс использует алгоритм устранения избыточности внутренне так, чтобы значения по умолчанию свойств Боба не были записаны потоку. Ниже пример архива XML, содержащего некоторые компоненты пользовательского интерфейса от инструментария колебания:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.0" class="java.beans.XMLDecoder"> <object class="javax.swing.JFrame"> <void property="name"> <string>frame1</string> </void> <void property="bounds"> <object class="java.awt.Rectangle"> <int>0</int> <int>0</int> <int>200</int> <int>200</int> </object> </void> <void property="contentPane"> <void method="add"> <object class="javax.swing.JButton"> <void property="label"> <string>Hello</string> </void> </object> </void> </void> <void property="visible"> <boolean>true</boolean> </void> </object> </java>Синтаксис XML использует следующие соглашения:
Хотя все графы объектов могут быть записаны, используя только эти три тега, следующие определения включаются так, чтобы структуры общих данных могли быть выражены более кратко:
Integer
класс мог быть записан: <интервал> 123 </интервал>. Отметьте что XMLEncoder
класс использует отражательный пакет Java, в котором преобразование между типами примитивов Java и их связанными "классами обертки" обрабатывается внутренне. API для XMLEncoder
сам класс имеет дело только с Object
s. Для получения дополнительной информации Вы могли бы также хотеть проверить
XMLDecoder
, ObjectOutputStream
Конструктор и Описание |
---|
XMLEncoder(OutputStream out)
Создает новый кодер XML, чтобы выписать JavaBeans к потоку
out использование кодирования XML. |
XMLEncoder(OutputStream out, String charset, boolean declaration, int indentation)
Создает новый кодер XML, чтобы выписать JavaBeans к потоку
out использование данного charset запуск с данного indentation . |
Модификатор и Тип | Метод и Описание |
---|---|
void |
close()
Это вызовы метода
flush , пишет заключительная постиноходь и затем закрывает поток вывода, связанный с этим потоком. |
void |
flush()
Этот метод выписывает преамбулу, связанную с кодированием XML, если это уже не было записано и затем выписывает все значения который записанный потоку с прошлого раза
flush был вызван. |
Объект |
getOwner()
Получает владельца этого кодера.
|
void |
setOwner(Object owner)
Устанавливает владельца этого кодера к
owner . |
void |
writeExpression(Expression oldExp)
Записывает Выражение так, чтобы Кодер произвел фактический вывод, когда поток будет сброшен.
|
void |
writeObject(Object o)
Запишите представление XML указанного объекта к выводу.
|
void |
writeStatement(Statement oldStm)
Записывает Оператор так, чтобы Кодер произвел фактический вывод, когда поток будет сброшен.
|
get, getExceptionListener, getPersistenceDelegate, remove, setExceptionListener, setPersistenceDelegate
public XMLEncoder(OutputStream out)
out
использование кодирования XML.out
- поток, которому будет записано представление XML объектовIllegalArgumentException
- если out
null
XMLDecoder.XMLDecoder(InputStream)
public XMLEncoder(OutputStream out, String charset, boolean declaration, int indentation)
out
использование данного charset
запуск с данного indentation
.out
- поток, которому будет записано представление XML объектовcharset
- имя требуемого набора символов; может быть или каноническое имя или псевдонимdeclaration
- должно ли объявление XML быть сгенерировано; установите это в false
встраивая содержание в другой XML-документindentation
- число пробелов, чтобы расположить весь XML-документ с отступомIllegalArgumentException
- если out
или charset
null
, или если indentation
меньше чем 0IllegalCharsetNameException
- если charset
имя недопустимоUnsupportedCharsetException
- если никакая поддержка именованного набора символов не доступна в этом экземпляре виртуальной машины JavaUnsupportedOperationException
- если загруженный набор символов не поддерживает кодированиеCharset.forName(String)
public void setOwner(Object owner)
owner
.owner
- Владелец этого кодера.getOwner()
public Object getOwner()
setOwner(java.lang.Object)
public void writeObject(Object o)
writeObject
в классе Encoder
o
- Объект, который будет записан потоку.XMLDecoder.readObject()
public void writeStatement(Statement oldStm)
Этот метод должен только быть вызван в пределах контекста инициализации делегата персистентности.
writeStatement
в классе Encoder
oldStm
- Оператор, который будет записан потоку.PersistenceDelegate.initialize(java.lang.Class<?>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void writeExpression(Expression oldExp)
Этот метод должен только быть вызван в пределах контекста инициализации делегата персистентности или установки кодер, чтобы читать из пакета ресурса.
Для получения дополнительной информации об использовании пакетов ресурса с XMLEncoder см. http://java.sun.com/products/jfc/tsc/articles/persistence4/#i18n
writeExpression
в классе Encoder
oldExp
- Выражение, которое будет записано потоку.PersistenceDelegate.initialize(java.lang.Class<?>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void flush()
flush
был вызван. После сбрасывания очищаются все внутренние ссылки на значения, которые были записаны этому потоку.public void close()
flush
, пишет заключительная постиноходь и затем закрывает поток вывода, связанный с этим потоком.close
в интерфейсе AutoCloseable
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.