Java I/O 教程(十) ObjectOutputStream和ObjectInputStream
ObjectOutputStream
ObjectOutputStream用于往输出流中写入原始类型和Java对象。
类定义
public class ObjectOutputStream
extends OutputStream
implements ObjectOutput, ObjectStreamConstants
构造函数
protected |
ObjectOutputStream()
Provide a way for subclasses that are completely reimplementing ObjectOutputStream to not have to allocate private data just used by this implementation of ObjectOutputStream.
|
ObjectOutputStream(OutputStream out)
Creates an ObjectOutputStream that writes to the specified OutputStream.
|
方法
protected void |
annotateClass(Class<?> cl)
Subclasses may implement this method to allow class data to be stored in the stream.
|
protected void |
annotateProxyClass(Class<?> cl)
Subclasses may implement this method to store custom data in the stream along with descriptors for dynamic proxy classes.
|
void |
close()
Closes the stream.
|
void |
defaultWriteObject()
Write the non-static and non-transient fields of the current class to this stream.
|
protected void |
drain()
Drain any buffered data in ObjectOutputStream.
|
protected boolean |
enableReplaceObject(boolean enable)
Enable the stream to do replacement of objects in the stream.
|
void |
flush()
Flushes the stream.
|
ObjectOutputStream.PutField |
putFields()
Retrieve the object used to buffer persistent fields to be written to the stream.
|
protected Object |
replaceObject(Object obj)
This method will allow trusted subclasses of ObjectOutputStream to substitute one object for another during serialization.
|
void |
reset()
Reset will disregard the state of any objects already written to the stream.
|
void |
useProtocolVersion(int version)
Specify stream protocol version to use when writing the stream.
|
void |
write(byte[] buf)
Writes an array of bytes.
|
void |
write(byte[] buf, int off, int len)
Writes a sub array of bytes.
|
void |
write(int val)
Writes a byte.
|
void |
writeBoolean(boolean val)
Writes a boolean.
|
void |
writeByte(int val)
Writes an 8 bit byte.
|
void |
writeBytes(String str)
Writes a String as a sequence of bytes.
|
void |
writeChar(int val)
Writes a 16 bit char.
|
void |
writeChars(String str)
Writes a String as a sequence of chars.
|
protected void |
writeClassDescriptor(ObjectStreamClass desc)
Write the specified class descriptor to the ObjectOutputStream.
|
void |
writeDouble(double val)
Writes a 64 bit double.
|
void |
writeFields()
Write the buffered fields to the stream.
|
void |
writeFloat(float val)
Writes a 32 bit float.
|
void |
writeInt(int val)
Writes a 32 bit int.
|
void |
writeLong(long val)
Writes a 64 bit long.
|
void |
writeObject(Object obj)
Write the specified object to the ObjectOutputStream.
|
protected void |
writeObjectOverride(Object obj)
Method used by subclasses to override the default writeObject method.
|
void |
writeShort(int val)
Writes a 16 bit short.
|
protected void |
writeStreamHeader()
The writeStreamHeader method is provided so subclasses can append or prepend their own header to the stream.
|
void |
writeUnshared(Object obj)
Writes an "unshared" object to the ObjectOutputStream.
|
void |
writeUTF(String str)
|
例子
FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeInt(12345);
oos.writeObject("Today");
oos.writeObject(new Date());
oos.close();
ObjectInputStream
ObjectInputStream用于从输入流读取Java对象。
类定义
public class ObjectInputStream
extends InputStream
implements ObjectInput, ObjectStreamConstants
构造函数
protected |
ObjectInputStream()
Provide a way for subclasses that are completely reimplementing ObjectInputStream to not have to allocate private data just used by this implementation of ObjectInputStream.
|
ObjectInputStream(InputStream in)
Creates an ObjectInputStream that reads from the specified InputStream.
|
方法
int |
available()
Returns the number of bytes that can be read without blocking.
|
void |
close()
Closes the input stream.
|
void |
defaultReadObject()
Read the non-static and non-transient fields of the current class from this stream.
|
protected boolean |
enableResolveObject(boolean enable)
Enable the stream to allow objects read from the stream to be replaced.
|
int |
read()
Reads a byte of data.
|
int |
read(byte[] buf, int off, int len)
Reads into an array of bytes.
|
boolean |
readBoolean()
Reads in a boolean.
|
byte |
readByte()
Reads an 8 bit byte.
|
char |
readChar()
Reads a 16 bit char.
|
protected ObjectStreamClass |
readClassDescriptor()
Read a class descriptor from the serialization stream.
|
double |
readDouble()
Reads a 64 bit double.
|
ObjectInputStream.GetField |
readFields()
Reads the persistent fields from the stream and makes them available by name.
|
float |
readFloat()
Reads a 32 bit float.
|
void |
readFully(byte[] buf)
Reads bytes, blocking until all bytes are read.
|
void |
readFully(byte[] buf, int off, int len)
Reads bytes, blocking until all bytes are read.
|
int |
readInt()
Reads a 32 bit int.
|
String |
readLine()
Deprecated.
This method does not properly convert bytes to characters. see DataInputStream for the details and alternatives.
|
long |
readLong()
Reads a 64 bit long.
|
Object |
readObject()
Read an object from the ObjectInputStream.
|
protected Object |
readObjectOverride()
This method is called by trusted subclasses of ObjectOutputStream that constructed ObjectOutputStream using the protected no-arg constructor.
|
short |
readShort()
Reads a 16 bit short.
|
protected void |
readStreamHeader()
The readStreamHeader method is provided to allow subclasses to read and verify their own stream headers.
|
Object |
readUnshared()
Reads an "unshared" object from the ObjectInputStream.
|
int |
readUnsignedByte()
Reads an unsigned 8 bit byte.
|
int |
readUnsignedShort()
Reads an unsigned 16 bit short.
|
String |
readUTF()
|
void |
registerValidation(ObjectInputValidation obj, int prio)
Register an object to be validated before the graph is returned.
|
protected Class<?> |
resolveClass(ObjectStreamClass desc)
Load the local class equivalent of the specified stream class description.
|
protected Object |
resolveObject(Object obj)
This method will allow trusted subclasses of ObjectInputStream to substitute one object for another during deserialization.
|
protected Class<?> |
resolveProxyClass(String[] interfaces)
Returns a proxy class that implements the interfaces named in a proxy class descriptor; subclasses may implement this method to read custom data from the stream along with the descriptors for dynamic proxy classes, allowing them to use an alternate loading mechanism for the interfaces and the proxy class.
|
int |
skipBytes(int len)
Skips bytes.
|
例子
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
int i = ois.readInt();
String today = (String) ois.readObject();
Date date = (Date) ois.readObject();
ois.close();
关于读取Java对象的例子,请参考文章:
Java序列化(Serializable)与反序列化详解
Java I/O 教程(十) ObjectOutputStream和ObjectInputStream的更多相关文章
- Java NIO系列教程(十)DatagramChannel
Java NIO系列教程(十)DatagramChannel 转载自并发编程网 – ifeve.com,本文链接地址: Java NIO系列教程(十) Java NIO DatagramChannel
- 我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法
今天用ObjectOutputStream和ObjectInputStream进行对象序列化话操作的时候,报了java.io.EOFException异常. 异常代码如下: java.io.EOFEx ...
- Java NIO系列教程(三-十二) Buffer
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...
- 201521123061 《Java程序设计》第十二周学习总结
201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...
- 201521123072《java程序设计》第十二周学习总结
201521123072<java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象 ...
- 201521123038 《Java程序设计》 第十二周学习总结
201521123038 <Java程序设计> 第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student ...
- 201521123122 《java程序设计》第十二周学习总结
## 201521123122 <java程序设计>第十二周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将St ...
- 20155306 2016-2017-2 《Java程序设计》第十周学习总结
20155306 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java和Android开发学习(网络) 网络概览 计算机网络体系结构的通信协议划分为七层, ...
- ObjectOutputStream和ObjectInputStream
官方解释: ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStream 读取(重构)对象.通过使用流中的文 ...
- [转] java书籍(给Java程序猿们推荐一些值得一看的好书 + 7本免费的Java电子书和教程 )
7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...
随机推荐
- 【Mysql系列】(一)MySQL语句执行流程
首发博客地址 首发博客地址 系列文章地址 参考文章 MySQL 逻辑架构 连接器 连接命令一般是这么写的 mysql -h$ip -P$port -u$user -p 那么 什么是连接器? MySQL ...
- Grub2 内核启动参数总结
Grub2 内核启动参数总结 部分参数 biosdevname=0 net.ifnames=0 # 注意这个配置会修改网卡的名字, 比如之前是ens192 # 添加如上两个内容后就会变成 eth0 类 ...
- [转帖]麒麟v10上部署TiDBv5.1.2生产环境的最佳实践
https://tidb.net/book/tidb-monthly/2022/2022-07/usercase/tidb-v5-1-2 前言 笔者最近在一个银行项目中做 PoC 测试,由于客户选择 ...
- [转帖]部署Alertmanager
https://flashcat.cloud/docs/content/flashcat-monitor/prometheus/alert/manager-install/ Alertmanager和 ...
- [转帖]Kafka 性能优化与问题深究
Kafka 性能优化与问题深究 一.Kafka深入探究 1.1 kafka整体介绍 1. 1.1 Kafka 如何做到高吞吐.低延迟的呢? Kafka是一个分布式高吞吐量的消息系统,这里提下 Kafk ...
- [转帖]Linux 中unzip解压时中文乱码的解决办法
https://www.yii666.com/blog/163883.html Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.z ...
- [转帖]Intel、海光、鲲鹏920、飞腾2500 CPU性能对比
https://plantegg.github.io/2021/06/18/%E5%87%A0%E6%AC%BECPU%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94/ Int ...
- linux使用脚本给文件的最后一行不换行的方式插入一句话
处理一下 sed -i '$s/$/&,xxxx.com/' /deploy/mailfailstart
- vue中v-show你不知道的用法 created computed mounted的执行顺序
我们都知道,v-show的值是一个布尔类型的. 我通过这个值进行显示或者隐藏. 但是有些时候,这个值是true还是false,我们需要去进行计算 此时我们就可以使用v-show="XXX() ...
- # 继续前行github star突破8k即时通讯IM开源项目OpenIM版本发布计划
项目简介 OpenIM继续领跑开源IM领域,在广大开发者的支持下,目前github star突破8k.在数据泄露.信息外泄.隐私滥用的时代,IM私有化部署需求旺盛.其中,政企协同办公对IM需求猛增,随 ...