Примечание: Не использовать сериализацию Java.Также DataOutputStream
имеет некоторое дурацкое форматирование, так что не используйте это тоже.
DataOutputStream
предоставляет слой поверх OutputStream
, который поддерживает форматирование данных в соответствии с требованиями к файлам классов Java.Он не добавляет никаких тегов / метаданных, он просто записывает данные в стандартном формате.Это явно часть раннего компилятора, обнародованного, потому что это может быть полезно - типично для классов JDK1.00.
ObjectOutputStream
предоставляет слой над DataOutputStream
(не должен быть реализован с этим классом,но формат данных низкого уровня такой же), который поддерживает запись определенного формата файла, содержащего произвольные данные объекта.Как и в большинстве форматов, это включает в себя пакет заголовков.
Когда вы пишете объект в ObjectOutputStream
, он также напишет описание класса или ссылку, если он использовался с момента последнего reset
.Методы «data» задаются для форматирования, аналогичного DataOutputStream
, , но файл уже имеет заголовок .Эти методы обычно используются в пользовательских writeObject
методах после defaultWriteObject
или writeFields
.
tl; dr Там есть заголовок с ObjectOutputStream
;ObjectOutputStream
- это (проницаемый) слой поверх DataOutputStream
.