Класс 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.
Подклассы 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.