Spec-Zone.ru › OpenJDK 8

Класс ObjectOutputStream

  • java.lang.Object
    • java.io.OutputStream
      • java.io.ObjectOutputStream
Все реализованные интерфейсы:
Closeable, DataOutput, Flushable, ObjectOutput, ObjectStreamConstants, AutoCloseable

public class ObjectOutputStream
extends OutputStream
implements ObjectOutput, ObjectStreamConstants

Класс ObjectOutputStream записывает примитивные типы данных и графики объектов Java в OutputStream. Объекты можно прочитать (восстановить) с помощью ObjectInputStream. Постоянное хранение объектов может быть выполнено с помощью файла для потока. Если поток является потоком сокета сети, объекты можно восстановить на другом хосте или в другом процессе.

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

Метод writeObject используется для записи объекта в поток. Любой объект, включая строки и массивы, записывается с помощью writeObject. В поток можно записать несколько объектов или примитивов. Объекты должны быть прочитаны обратно из соответствующего ObjectInputstream с теми же типами и в том же порядке, в котором они были записаны.

Примитивные типы данных также могут быть записаны в поток с помощью соответствующих методов из DataOutput. Строки также могут быть записаны с помощью метода writeUTF.

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

Например, чтобы записать объект, который можно прочитать с помощью примера в ObjectInputStream:

FileOutputStream fos = new FileOutputStream("t.tmp");
      ObjectOutputStream oos = new ObjectOutputStream(fos);

      oos.writeInt(12345);
      oos.writeObject("Today");
      oos.writeObject(new Date());

      oos.close();

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

private void readObject(java.io.ObjectInputStream stream)
     throws IOException, ClassNotFoundException;
 private void writeObject(java.io.ObjectOutputStream stream)
     throws IOException
 private void readObjectNoData()
     throws ObjectStreamException;

Метод writeObject отвечает за запись состояния объекта для его конкретного класса, чтобы соответствующий метод readObject мог его восстановить. Метод не должен беспокоиться о состоянии, принадлежащем суперклассам или подклассам объекта. Состояние сохраняется путем записи отдельных полей в ObjectOutputStream с помощью метода writeObject или с помощью методов для примитивных типов данных, поддерживаемых DataOutput.

Сериализация не записывает поля объекта, который не реализует интерфейс java.io.Serializable. Подклассы объектов, которые не сериализуемы, могут быть сериализуемыми. В этом случае несериализуемый класс должен иметь конструктор без аргументов, чтобы разрешить инициализацию его полей. В этом случае ответственность за сохранение и восстановление состояния несериализуемого класса лежит на подклассе. Часто поля этого класса являются доступными (public, package или protected) или существуют методы get и set, которые могут быть использованы для восстановления состояния.

Сериализацию объекта можно предотвратить, реализовав методы writeObject и readObject, которые выбрасывают NotSerializableException. Исключение будет перехвачено ObjectOutputStream и прервет процесс сериализации.

Реализация интерфейса Externalizable позволяет объекту полностью контролировать содержимое и формат сериализованной формы объекта. Методы интерфейса Externalizable, writeExternal и readExternal, вызываются для сохранения и восстановления состояния объекта. При реализации классом они могут записывать и читать своё состояние с помощью всех методов ObjectOutput и ObjectInput. Ответственность за обработку любых изменений версии лежит на объектах.

Постоянные значения перечислений сериализуются по-другому, чем обычные сериализуемые или экстернализуемые объекты. Сериализованная форма постоянного значения перечисления состоит только из его имени; значения полей постоянного значения не передаются. Для сериализации постоянного значения перечисления ObjectOutputStream записывает строку, возвращаемую методом имени постоянного значения. Как и другие сериализуемые или экстернализуемые объекты, постоянные значения перечислений могут действовать как цели обратных ссылок, появляющихся впоследствии в потоке сериализации. Процесс сериализации постоянных значений перечислений не может быть настраиваемым; любые специфичные для класса методы writeObject и writeReplace, определенные типами перечислений, игнорируются во время сериализации. Аналогично, любые объявления поля serialPersistentFields или serialVersionUID также игнорируются — все типы перечислений имеют фиксированное serialVersionUID 0L.

Примитивные данные, за исключением сериализуемых полей и данных внешнего формата, записываются в ObjectOutputStream в блоках данных. Блок данных состоит из заголовка и данных. Заголовок блока данных состоит из маркера и количества байтов, которые следуют за заголовком. Последовательные записи примитивных данных объединяются в один блок данных. Коэффициент блокировки, используемый для блока данных, составляет 1024 байта. Каждый блок данных будет заполнен до 1024 байтов или будет записан всякий раз, когда происходит завершение режима блока данных. Вызовы методов ObjectOutputStream writeObject, defaultWriteObject и writeFields изначально завершают любой существующий блок данных.

С тех пор:
JDK1.1
См. также:
DataOutput, ObjectInputStream, Serializable, Externalizable, Спецификация сериализации объектов, раздел 2, Классы вывода объектов

Вложенные классы

Модификатор и тип Класс и описание
static class  ObjectOutputStream.PutField

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

Поля

Поля унаследованные от интерфейса java.io.ObjectStreamConstants

baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING

Конструкторы

Модификатор Конструктор и описание
protected ObjectOutputStream()

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

ObjectOutputStream(OutputStream out)

Создает ObjectOutputStream, который записывает в указанный OutputStream.

Методы

Модификатор и тип Метод и описание
protected void annotateClass(Class<?> cl)

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

protected void annotateProxyClass(Class<?> cl)

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

void close()

Закрывает поток.

void defaultWriteObject()

Записывает нестатические и непеременные поля текущего класса в этот поток.

protected void drain()

Очищает любые буферизованные данные в ObjectOutputStream.

protected boolean enableReplaceObject(boolean enable)

Разрешает потоку выполнять замену объектов в потоке.

void flush()

Очищает поток.

ObjectOutputStream.PutField putFields()

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

protected Object replaceObject(Object obj)

Этот метод позволит доверенным подклассам ObjectOutputStream заменить один объект другим во время сериализации.

void reset()

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

void useProtocolVersion(int version)

Указывает версию протокола потока, которую нужно использовать при записи потока.

void write(byte[] buf)

Записывает массив байтов.

void write(byte[] buf, int off, int len)

Записывает подмассив байтов.

void write(int val)

Записывает байт.

void writeBoolean(boolean val)

Записывает булево значение.

void writeByte(int val)

Записывает 8-битный байт.

void writeBytes(String str)

Записывает строку как последовательность байтов.

void writeChar(int val)

Записывает 16-битный символ.

void writeChars(String str)

Записывает строку как последовательность символов.

protected void writeClassDescriptor(ObjectStreamClass desc)

Записывает указанный описатель класса в ObjectOutputStream.

void writeDouble(double val)

Записывает 64-битное число с плавающей запятой.

void writeFields()

Записывает буферизованные поля в поток.

void writeFloat(float val)

Записывает 32-битное число с плавающей запятой.

void writeInt(int val)

Записывает 32-битное целое число.

void writeLong(long val)

Записывает 64-битное целое число.

void writeObject(Object obj)

Записывает указанный объект в ObjectOutputStream.

protected void writeObjectOverride(Object obj)

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

void writeShort(int val)

Записывает 16-битное целое число.

protected void writeStreamHeader()

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

void writeUnshared(Object obj)

Записывает "несовмещаемый" объект в ObjectOutputStream.

void writeUTF(String str)

Запись примитивных данных этой строки в формате модифицированной UTF-8.

Методы унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

ObjectOutputStream

public ObjectOutputStream(OutputStream out)
                   throws IOException

Создаёт ObjectOutputStream, который записывает данные в указанный OutputStream. Этот конструктор записывает заголовок потока сериализации в базовый поток; вызывающий метод может захотеть немедленно сбросить поток, чтобы гарантировать, что конструкторы, принимающие ObjectInputStream, не заблокируются при чтении заголовка.

Если установлен менеджер безопасности, этот конструктор проверит разрешение "enableSubclassImplementation" SerializablePermission при вызове непосредственно или косвенно конструктором подкласса, который переопределяет методы ObjectOutputStream.putFields или ObjectOutputStream.writeUnshared.

Параметры:
out - выходной поток для записи
Исключения:
IOException - если при записи заголовка потока произошла ошибка ввода-вывода
SecurityException - если недоверенный подкласс незаконно переопределяет методы, чувствительные к безопасности
NullPointerException - если out является null
С:
1.4
См. также:
ObjectOutputStream(), putFields(), ObjectInputStream(InputStream)

ObjectOutputStream

protected ObjectOutputStream()
                      throws IOException,
                             SecurityException

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

Если установлен менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkPermission с разрешением SerializablePermission("enableSubclassImplementation") для проверки возможности включения подклассов.

Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission запрещает включение подклассов.
IOException - если при создании потока произошла ошибка ввода-вывода
См. также:
SecurityManager.checkPermission(java.security.Permission), SerializablePermission

Методы

useProtocolVersion

public void useProtocolVersion(int version)
                        throws IOException

Указывает версию протокола потока для использования при записи потока.

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

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

Параметры:
version - использовать ProtocolVersion из java.io.ObjectStreamConstants.
Исключения:
IllegalStateException - если вызвана после сериализации любых объектов.
IllegalArgumentException - если передана некорректная версия.
IOException - если произошли ошибки ввода-вывода
С:
1.2
См. также:
ObjectStreamConstants.PROTOCOL_VERSION_1, ObjectStreamConstants.PROTOCOL_VERSION_2

writeObject

public final void writeObject(Object obj)
                       throws IOException

Записать указанный объект в ObjectOutputStream. Записывается класс объекта, сигнатура класса и значения не-транзиентных и не-статических полей класса и всех его супертипов. По умолчанию сериализация класса может быть переопределена с помощью методов writeObject и readObject. Объекты, на которые ссылается этот объект, записываются транзитивно, чтобы позволить ObjectInputStream восстановить полную эквивалентную граф объектов.

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

Определено в:
writeObject в интерфейсе ObjectOutput
Параметры:
obj - объект для записи
Исключения:
InvalidClassException - что-то не так с классом, используемым сериализацией.
NotSerializableException - некоторый объект для сериализации не реализует интерфейс java.io.Serializable.
IOException - любые исключения, сгенерированные базовым OutputStream.

writeObjectOverride

protected void writeObjectOverride(Object obj)
                            throws IOException

Метод, используемый подклассами для переопределения метода default writeObject. Этот метод вызывается надёжными подклассами ObjectInputStream, которые создали ObjectInputStream с помощью защищённого конструктора без аргументов. От подкласса ожидается переопределение метода с модификатором "final".

Параметры:
obj - объект для записи в базовый поток
Исключения:
IOException - если при записи в базовый поток произошли ошибки ввода-вывода
С:
1.2
См. также:
ObjectOutputStream(), writeObject(Object)

writeUnshared

public void writeUnshared(Object obj)
                   throws IOException

Записывает "необщий" объект в ObjectOutputStream. Этот метод идентичен writeObject, за исключением того, что он всегда записывает данный объект как новый уникальный объект в потоке (в отличие от обратной ссылки на ранее сериализованный экземпляр). Конкретно:

  • Объект, записанный с помощью writeUnshared, всегда сериализуется так же, как новый объект (объект, который ещё не был записан в поток), независимо от того, был ли он записан ранее.
  • Если writeObject используется для записи объекта, который был ранее записан с помощью writeUnshared, предыдущая операция writeUnshared обрабатывается как запись отдельного объекта. Другими словами, ObjectOutputStream никогда не будет генерировать обратные ссылки на данные объекта, записанные вызовами writeUnshared.
В то время как запись объекта с помощью writeUnshared сама по себе не гарантирует уникальную ссылку на объект при его десериализации, она позволяет определять один объект несколько раз в потоке, чтобы избежать конфликтов при многократных вызовах readUnshared получателем. Обратите внимание, что описанные выше правила применяются только к основному объекту, записанному с помощью writeUnshared, а не к любым подчинённым объектам в графе объекта, подлежащем сериализации.

Подклассы ObjectOutputStream, которые переопределяют этот метод, могут быть созданы только в контекстах безопасности, обладающих разрешением "enableSubclassImplementation" SerializablePermission; любая попытка создать такой подкласс без этого разрешения приведёт к исключению SecurityException.

Параметры:
obj - объект для записи в поток
Исключения:
NotSerializableException - если объект в графе, подлежащем сериализации, не реализует интерфейс Serializable
InvalidClassException - если существует проблема с классом объекта, подлежащего сериализации
IOException - если при сериализации произошла ошибка ввода-вывода
С:
1.4

defaultWriteObject

public void defaultWriteObject()
                        throws IOException

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

Исключения:
IOException - если произошли ошибки ввода-вывода при записи в базовый OutputStream

putFields

public ObjectOutputStream.PutField putFields()
                                      throws IOException

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

Возвращает:
экземпляр класса Putfield, содержащий сериализуемые поля
Исключения:
IOException - если произошли ошибки ввода-вывода
С:
1.2

writeFields

public void writeFields()
                 throws IOException

Записать буферизованные поля в поток.

Исключения:
IOException - если произошли ошибки ввода-вывода при записи в базовый поток
NotActiveException - вызвано, когда метод writeObject класса не был вызван для записи состояния объекта.
С:
1.2

reset

public void reset()
           throws IOException

Reset игнорирует состояние любых объектов, уже записанных в поток. Состояние сбрасывается до такого же, как у нового ObjectOutputStream. Текущая точка в потоке помечается как сброшенная, поэтому соответствующий ObjectInputStream будет сброшен в той же точке. Объекты, ранее записанные в поток, больше не будут считаться уже присутствующими в потоке. Они будут перезаписаны в поток.

Исключения:
IOException - если reset() вызывается во время сериализации объекта.

annotateClass

protected void annotateClass(Class<?> cl)
                      throws IOException

Подклассы могут реализовать этот метод, чтобы позволить хранить данные класса в потоке. По умолчанию этот метод ничего не делает. Соответствующий метод в ObjectInputStream — resolveClass. Этот метод вызывается ровно один раз для каждого уникального класса в потоке. Имя класса и сигнатура уже будут записаны в поток. Этот метод может свободно использовать ObjectOutputStream для сохранения любой подходящей формы представления класса (например, байтов файла класса). Метод resolveClass в соответствующем подклассе ObjectInputStream должен считывать и использовать любые данные или объекты, записанные методом annotateClass.

Параметры:
cl - класс, для которого необходимо сохранить пользовательские данные
Исключения:
IOException - любые исключения, сгенерированные базовым OutputStream.

annotateProxyClass

protected void annotateProxyClass(Class<?> cl)
                           throws IOException

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

Этот метод вызывается ровно один раз для каждого уникального описателя прокси-класса в потоке. По умолчанию в ObjectOutputStream этот метод ничего не делает.

Соответствующий метод в ObjectInputStream — resolveProxyClass. Для данного подкласса ObjectOutputStream, который переопределяет этот метод, метод resolveProxyClass в соответствующем подклассе ObjectInputStream должен считывать любые данные или объекты, записанные методом annotateProxyClass.

Параметры:
cl - прокси-класс для сохранения пользовательских данных
Исключения:
IOException - любое исключение, сгенерированное базовым OutputStream
С:
1.3
См. также:
ObjectInputStream.resolveProxyClass(String[])

replaceObject

protected Object replaceObject(Object obj)
                        throws IOException

Этот метод позволит надёжным подклассам ObjectOutputStream заменить один объект другим во время сериализации. Замена объектов отключена до вызова enableReplaceObject. Метод enableReplaceObject проверяет, можно ли доверять потоку, запрашивающему замену. Первый экземпляр каждого объекта, записанного в поток сериализации, передаётся в replaceObject. Все последующие ссылки на объект заменяются объектом, возвращённым исходным вызовом replaceObject. Для предотвращения непреднамеренного раскрытия приватного состояния объектов, только надёжные потоки могут использовать replaceObject.

Метод ObjectOutputStream.writeObject принимает параметр типа Object (а не Serializable), чтобы позволить случаи, когда несериализуемые объекты заменяются сериализуемыми.

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

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

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

Параметры:
obj - объект, который будет заменён
Возвращает:
альтернативный объект, заменивший указанный
Исключения:
IOException - Любое исключение, сгенерированное базовым потоком OutputStream.

enableReplaceObject

protected boolean enableReplaceObject(boolean enable)
                               throws SecurityException

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

Если enable имеет значение true, и установлен менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkPermission с разрешением SerializablePermission("enableSubstitution") для проверки возможности включения замены объектов в потоке.

Параметры:
enable - логический параметр для включения замены объектов
Возвращает:
предыдущее значение до вызова этого метода
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkPermission запрещает включение замены объектов в потоке.
См. также:
SecurityManager.checkPermission(java.security.Permission), SerializablePermission

writeStreamHeader

protected void writeStreamHeader()
                          throws IOException

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

Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeClassDescriptor

protected void writeClassDescriptor(ObjectStreamClass desc)
                             throws IOException

Записывает указанный описатель класса в ObjectOutputStream. Описатели классов используются для идентификации классов объектов, записанных в поток. Подклассы ObjectOutputStream могут переопределять этот метод, чтобы настроить способ записи описателей класса в поток сериализации. Соответствующий метод в ObjectInputStream, readClassDescriptor, должен быть переопределён для восстановления описателя класса из его пользовательского представления потока. По умолчанию этот метод записывает описатели классов в соответствии с форматом, определённым в спецификации сериализации объектов.

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

Параметры:
desc - описатель класса для записи в поток
Исключения:
IOException - Если произошла ошибка ввода/вывода.
С:
1.3
См. также:
ObjectInputStream.readClassDescriptor(), useProtocolVersion(int), ObjectStreamConstants.PROTOCOL_VERSION_1

write

public void write(int val)
           throws IOException

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

Унаследован от:
write в интерфейсе DataOutput
Унаследован от:
write в интерфейсе ObjectOutput
Унаследован от:
write в классе OutputStream
Параметры:
val - байт, который будет записан в поток
Исключения:
IOException - Если произошла ошибка ввода/вывода.

write

public void write(byte[] buf)
           throws IOException

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

Унаследован от:
write в интерфейсе DataOutput
Унаследован от:
write в интерфейсе ObjectOutput
Переопределяет:
write в классе OutputStream
Параметры:
buf - данные для записи
Исключения:
IOException - Если произошла ошибка ввода/вывода.
См. также:
OutputStream.write(byte[], int, int)

write

public void write(byte[] buf,
                  int off,
                  int len)
           throws IOException

Записывает подмассив байтов.

Унаследован от:
write в интерфейсе DataOutput
Унаследован от:
write в интерфейсе ObjectOutput
Переопределяет:
write в классе OutputStream
Параметры:
buf - данные для записи
off - начальный смещение в данных
len - количество записываемых байтов
Исключения:
IOException - Если произошла ошибка ввода/вывода.

flush

public void flush()
           throws IOException

Очищает поток. Это запишет все буферизованные выходные байты и очистит базовый поток.

Унаследован от:
flush в интерфейсе Flushable
Унаследован от:
flush в интерфейсе ObjectOutput
Переопределяет:
flush в классе OutputStream
Исключения:
IOException - Если произошла ошибка ввода/вывода.

drain

protected void drain()
              throws IOException

Очищает все буферизованные данные в ObjectOutputStream. Аналогично flush, но не распространяет очистку на базовый поток.

Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

close

public void close()
           throws IOException

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

Унаследован от:
close в интерфейсе Closeable
Унаследован от:
close в интерфейсе ObjectOutput
Унаследован от:
close в интерфейсе AutoCloseable
Переопределяет:
close в классе OutputStream
Исключения:
IOException - Если произошла ошибка ввода/вывода.

writeBoolean

public void writeBoolean(boolean val)
                  throws IOException

Записывает булево значение.

Унаследован от:
writeBoolean в интерфейсе DataOutput
Параметры:
val - булево значение для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeByte

public void writeByte(int val)
               throws IOException

Записывает байт 8 бит.

Унаследован от:
writeByte в интерфейсе DataOutput
Параметры:
val - значение байта для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeShort

public void writeShort(int val)
                throws IOException

Записывает 16-битное целое значение.

Унаследован от:
writeShort в интерфейсе DataOutput
Параметры:
val - значение короткого целого для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeChar

public void writeChar(int val)
               throws IOException

Записывает 16-битный символ.

Унаследован от:
writeChar в интерфейсе DataOutput
Параметры:
val - значение символа для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeInt

public void writeInt(int val)
              throws IOException

Записывает 32-битное целое значение.

Унаследован от:
writeInt в интерфейсе DataOutput
Параметры:
val - значение целого для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeLong

public void writeLong(long val)
               throws IOException

Записывает 64-битное целое значение.

Унаследован от:
writeLong в интерфейсе DataOutput
Параметры:
val - значение длинного целого для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeFloat

public void writeFloat(float val)
                throws IOException

Записывает 32-битное число с плавающей точкой.

Унаследован от:
writeFloat в интерфейсе DataOutput
Параметры:
val - значение числа с плавающей точкой для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeDouble

public void writeDouble(double val)
                 throws IOException

Записывает 64-битное число с плавающей точкой двойной точности.

Унаследован от:
writeDouble в интерфейсе DataOutput
Параметры:
val - значение числа с плавающей точкой двойной точности для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeBytes

public void writeBytes(String str)
                throws IOException

Записывает строку в виде последовательности байтов.

Унаследован от:
writeBytes в интерфейсе DataOutput
Параметры:
str - строка байтов для записи
Исключения:
IOException - если при записи в базовый поток возникли ошибки ввода/вывода

writeChars

public void writeChars(String str)
                throws IOException

Записывает строку в виде последовательности символов.

Указано в:
writeChars в интерфейсе DataOutput
Параметры:
str - строка символов, которые будут записаны
Исключения:
IOException - если при записи в базовый поток возникают ошибки ввода-вывода

writeUTF

public void writeUTF(String str)
              throws IOException

Запись примитивных данных этой строки в формате модифицированной UTF-8. Обратите внимание, что существует существенная разница между записью строки в поток как примитивных данных или как объекта. Экземпляр String, записанный с помощью writeObject, записывается в поток как строка изначально. Последующие вызовы writeObject() записывают ссылки на строку в поток.

Указано в:
writeUTF в интерфейсе DataOutput
Параметры:
str - строка, которая должна быть записана
Исключения:
IOException - если при записи в базовый поток возникают ошибки ввода-вывода

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API