JavaIO2

Print流:

打印流 只做输出没有输入 打印流分为字节打印流和字符打印流

PrintWrite:打印字符流,用于从程序中单向的输出内容

print();方法可以打印更多的数据类型,底层使用的还是write()方法

PrintWriter printWriter = new PrintWriter("D:/demo.html");
printWriter.println("<h1>aaaaaa<h1>");
printWriter.println("<h1>aaaaaa<h1>");
printWriter.println("<h1>aaaaaa<h1>");
printWriter.println("<h1>aaaaaa<h1>");
printWriter.println("<h1>aaaaaa<h1>");
printWriter.flush();
printWriter.close();

对象输入输出流–对象序列化:

对象是在内存中存储的,内存中数据随着程序结束就销毁了,有时需要将这些对象保存下来,使用时

再还原回来,

可以使用对象输入流和输出流,将对象信息写入到文件中,就可以做到持久化存储。

对象输入输出流,主要的作用是用于写入对象的信息与读取对象的信息

对象的输出流:ObjectOutputStream 包装流

对象的输入流:ObjectInputStream

将对象输出到文件中称为对象的序列化 将对象从文件输入到程序中称为对象的反序列化,反序列化过

程中会创建新的你的心存储文件中的信息,也是创建对象的方法之一

//对象的序列化
FileOutputStream fileOutputStream = new FileOutputStream("D:/object.txt");
        String s = "abc";
        Date d = new Date();
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        objectOutputStream.writeObject(s);
        objectOutputStream.writeObject(d);

        objectOutputStream.flush();
        objectOutputStream.close();

//对象的反序列化
FileInputStream fileInputStream = new FileInputStream("D:/object.txt");
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        String s = (String) objectInputStream.readObject();
        Date d = (Date)objectInputStream.readObject();//这也是Java创建对象的一种方法
        System.out.println(s);
        System.out.println(d);
        objectInputStream.close();

Serializable接口:

​ 如果需要将类序列化到文件中,该类必须实现Serializable接口,为我们的类再运行时生成一个编

号(唯一的)

默认生成序列号,会在类信息发生修改后,序列号重新生成

显示的生成序列号,类信息发生修改后,序列号不变

transient关键字:所修饰的属性可以不用被序列化

public class Car implements Serializable {

    private static final long serialVersionUID = -6040719099052973040L;//显示的生成序列号
    private  String name ;
    private transient  int price;//不会被序列化


    public Car(String name, int price) {
        this.name = name;
        this.price = price;
    }

    @Override
    public String toString() {
        return "Car{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}


public class ObjectStream2 {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        /*FileOutputStream fileOutputStream = new FileOutputStream("D:/object.txt");
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        Car car = new Car("宝马",30000000);
        objectOutputStream.writeObject(car);

        objectOutputStream.flush();
        objectOutputStream.close();*/

        FileInputStream fileInputStream = new FileInputStream("D:/object.txt");
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Car car = (Car)objectInputStream.readObject();
        System.out.println(car);
        objectInputStream.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值