史上最全IO框架七(对象流:属于字节流)
来源:互联网 发布:淘宝直播电脑怎么看 编辑:程序博客网 时间:2024/04/29 22:48
package com.itheima.filedemo;
/**
* 类通过实现java.io.Serialzable接口以启用序列化功能(此接口为标记接口,乜有任何方法,类似克隆,)
*/
import java.io.Serializable;
public class Dog implements Serializable{
private String name;//private transient int age;//使用transient关键字声明的属性讲不会被序列化private int 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;}public Dog(String name, int age) { super(); this.name = name; this.age = age;}public Dog() { super(); // TODO Auto-generated constructor stub}@Overridepublic String toString() { return "Dog [name=" + name + ", age=" + age + "]";}
}
package com.itheima.filedemo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
/**
* 对象流
* @author Administrator
*
*/
public class ObjectStreamDemo {
public static void main(String[] args) { writeObject1(); readObject1(); writeObject2(); readObject2();}/** * 使用ObjectOutputStream把对象写入文件中(序列化) */public static void writeObject1(){ try { OutputStream out = new FileOutputStream("E:\\obj.temp"); //根据字节输出流对象构造一个对象流对象 ObjectOutputStream oos = new ObjectOutputStream(out); //输出数据 oos.writeInt(100); //构造一个对象 Dog dog = new Dog("小白", 10); //向文件中写入一个对象 oos.writeObject(dog); //关闭流 oos.close(); out.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/** * 使用ObjectInputStream读取文件中的对象 */public static void readObject1(){ try { InputStream is = new FileInputStream("E:\\obj.temp"); //根据字节输入流构造一个对象流对象 ObjectInputStream ois = new ObjectInputStream(is); //读取一个整数(读取时必须按照顺序) int num = ois.readInt(); //读取一个兑现 Dog dog = (Dog) ois.readObject(); //关闭流,输出 ois.close(); is.close(); //输出 System.out.println("num=" + num); System.out.println(dog); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/** * 将一组对象序列化到文件中,(采用对象数组) */public static void writeObject2(){ try { OutputStream os = new FileOutputStream("E:\\obj.temp"); ObjectOutputStream oos = new ObjectOutputStream(os); //对象数组 Dog[] dogs = new Dog[]{new Dog("小白",8),new Dog("小黑",2),new Dog("小红",4)}; //向文件中写入多个对象 oos.writeObject(dogs); //关闭流 oos.close(); os.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/** * 从文件中读取数组对象 */public static void readObject2(){ try { InputStream is = new FileInputStream("E:\\obj.temp"); ObjectInputStream ois = new ObjectInputStream(is); Dog[] dogs = (Dog[]) ois.readObject(); //关闭 ois.close(); is.close(); for (Dog dog : dogs) { System.out.println(dog); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }}
}
0 0
- 史上最全IO框架七(对象流:属于字节流)
- 史上最全IO集合框架八(字节数组流:属于字节流)
- 史上最全IO框架十(字符串流:属于字符流)
- 史上最全IO框架二(字节流)
- 史上最全IO集合框架九(数据流:数据字节流)
- Day20 --IO流对象 字节流
- java IO操作与字节流(七)管道流与线程联系实例
- IO(输入输出)-字节流
- java笔记七:IO流之字节流与字节缓冲流
- java笔记七:IO流之字节流与字节缓冲流
- IO流(字节流)
- IO流字节流
- IO流字节流
- IO流-字节流
- IO流--字节流
- java基础5:io流对象之字节输入输出流
- IO之字节流
- IO字节流
- oracle表设计汇总
- AngularJs 基础教程 (二) 数据的绑定与表达式
- CentOS 7 下配置KVM
- Android 图片压缩
- QNX简介
- 史上最全IO框架七(对象流:属于字节流)
- POJ 3984 迷宫问题
- Javascript—类和继承
- Thinking in Java - - 对象导论(一)
- Qt之QCustomPlot(图形库)
- linux06
- AngularJs 基础教程 (一) 我的第一个angularjs程序
- EditText弹出软键盘遮住输入框问题
- 第四天