IO流(ObjectStream流数据)
来源:互联网 发布:js reverse方法 编辑:程序博客网 时间:2024/05/22 04:50
IO流(ObjectStream流数据)
序列化流:将对象按照流的形式(在网络进行传输等等)封装成流数据:对象--->流数据:ObjectOutputStream反序列化流:将网络传输中的流数据又封装成了一个对象: 流数据-->对象 ObjectInputStream注意: 自定义的类通过实现 java.io.Serializable 接口以启用其序列化功能,未实现此接口的类将无法使其任何状态序列化或反序列化。注意: 如果在一个类中,该类的成员变量比较多,有时候为了让成员变量不被序列化,所有加一个关键字:transient 在每一次运行之后都会形成一个固定ID,如果对自定义类进行修改,再次运行就会有异常:java.io.InvalidClassException (ID发生了改变) 解决: 1.点击黄色警告线生成固定ID 2.local class incompatible: stream classdesc serialVersionUID = -3059867121192605950, local class serialVersionUID = -1219396793646518298 例:private static final long serialVersionUID = 1L;//默认的:default srial Version ID:默认版本ID
代码:
public class Person implements Serializable {
/** * */private static final long serialVersionUID = 1L;//点击Person下面的黄色警告线即可生成private String name ;
// private int age ;
// int age ;
transient int age ;
public Person() {
super();
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return “Person [name=” + name + “, age=” + age + “]”;
}
}
public static void main(String[] args) throws Exception {
// write();
read();}private static void read() throws IOException, Exception { //创建反序列化流对象 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("b.txt")); //一次读取一个数组 System.out.println(ois.readObject()); ois.close();}private static void write() throws FileNotFoundException, IOException { //创建序列化流对象 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("b.txt")); Person p = new Person("赵宇豪",23); oos.writeObject(p); oos.close();}
代码结果:
Person [name=赵宇豪, age=0]
//由于age被transient修饰,所以不能读取到
- IO流(ObjectStream流数据)
- IO(打印流、序列流、ObjectStream、管道流、RandomAccessFile、DataStream、ByteArrayStream)
- java对象流ObjectStream
- Java IO流:转化流InputStramReader,数据流DataStream,对象流ObjectStream
- java IO流 ObjectStream PipedStream 随机访问文件 字符编码--21
- (92)操作对象流ObjectStream、管道流PipedStream、任意流RandomStream
- 黑马程序员_java基础篇操作对象ObjectStream,管道流,随机存储Day5(下)
- ObjectStream
- JavaIO之ObjectStream(一)
- 黑马程序员-IO-ObjectStream-PipedStream-RandomAccessFile-DataStream-ByteArrayStream-CharArrayStream
- IO-数据操作流
- Java Io(数据输入输出流)
- IO流_FileOutputStream写出数据
- IO流_FileInputStream读取数据
- IO流_BufferedOutputStream写出数据
- IO流_BufferedInputStream读取数据
- 黑马程序员-常用的IO类使用,PrintStream,SequenceInputStream,文件切割,ObjectStream
- 数据IO流装饰字节数组IO流
- Hadoop集群搭建
- HBase
- censor
- 捡石子
- UVA-11582 Colossal Fibonacci Numbers!
- IO流(ObjectStream流数据)
- (并查集) Code Lock --HDOJ
- 要嫁就嫁程序猿—钱多话少死的早
- JAVA获取视频播第一帧
- c++实现双向链表的建立,插入,删除,合并,打印
- Java后台调js函数
- LintCode 删除链表中倒数第n个节点
- PAT 1008 数组元素循环右移问题
- HPU1415--小ho的01串