java学习之IO对象流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习之IO对象流相关的知识,希望对你有一定的参考价值。

//注意对象类要打标记实现Serializable接口
 1 package com.gh;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.io.ObjectInputStream;
 9 import java.io.ObjectOutputStream;
10 import java.io.OutputStream;
11 
12 public class ObjectStreamDemo {
13     /**
14      * 对象序列化
15      * 把对象写入到文件中
16      */
17     public static void writeobject(){
18         try {
19             OutputStream out =new FileOutputStream("1.gh");
20             ObjectOutputStream oos=new ObjectOutputStream(out);
21             Person p=new Person("小白", 8);
22             oos.writeObject(p);
23             oos.close();
24         } catch (FileNotFoundException e) {
25             e.printStackTrace();
26         } catch (IOException e) {
27             e.printStackTrace();
28         }
29     }
30     /**
31      * 对象的反序列化,
32      * 从文件中读取对象
33      */
34     public static void readobject(){
35         try {
36             InputStream in=new FileInputStream("1.gh");
37             ObjectInputStream ois=new ObjectInputStream(in);
38             Person ps=(Person)ois.readObject();
39             in.close();
40             System.out.println(ps);
41         } catch (FileNotFoundException e) {
42             e.printStackTrace();
43         } catch (IOException e) {
44             e.printStackTrace();
45         } catch (ClassNotFoundException e) {
46             e.printStackTrace();
47         }
48     }
49     public static void main(String[] args) {
50         //writeobject();
51         readobject();
52     }
53 }
 1 package com.gh;
 2 
 3 import java.io.Serializable;
 4 
 5 public class Person implements Serializable{//标记可以序列化
 6     private String name;
 7     private int age;
 8     public String getName() {
 9         return name;
10     }
11     public void setName(String name) {
12         this.name = name;
13     }
14     public int getAge() {
15         return age;
16     }
17     public void setAge(int age) {
18         this.age = age;
19     }
20     public Person() {
21         super();
22     }
23     public Person(String name, int age) {
24         this.name = name;
25         this.age = age;
26     }
27     @Override
28     public String toString() {
29         return "Person [name=" + name + ", age=" + age + "]";
30     }
31     
32 }

 

以上是关于java学习之IO对象流的主要内容,如果未能解决你的问题,请参考以下文章

Java学习之IO流(转换流)

java学习之IO字符流

Java学习之IO流

Java学习之IO流(序列流--SequenceInputStream)

java学习之字符流与字节流的转换

JAVA学习之字节流字符流