JAVA——58.输入输出流六-objectoutputstream和objectinputstream

【对象流】输入输出一个对象,而不仅仅是一个简短的信息(比如保存很多个复杂的用户的信息)。输入/出对象流是一个过滤器流,而文件是终点流,是结点流。
练习一、objectoutputstream的应用,保存一个复杂的用户信息
user:

package org.zhaiyujia.pkg1;

public class Users implements java.io.Serializable {//被写的对象必须序列化,实现Serializable的接口,否则写不进文件中
    private String username,password;

    public String getUsername() {
        return username;
    } 

    public void setUsername(String username) {
        this.username=username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password=password;
    }

}

TestObject:

package org.zhaiyujia.pkg1;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class TestObject {
    public static void main(String[] args) {
        try {
            FileOutputStream oos=new FileOutputStream("f:/a.txt");
            Users user1=new Users();
            user1.setUsername("zhaiyujia");
            user1.setPassword("123456");

            ObjectOutputStream objs=new ObjectOutputStream(oos);
            //转换了oos,使FileOutputStream变成了ObjectOutputStream对象
            objs.writeObject(user1);
            System.out.println("写入对象成功");

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

这里写图片描述
文件中是被转过码的,但我们依旧能看出里面的用户名(zhaiyujia)及密码(123456)
练习二、objectinputstream的应用,验证文件中得到的用户名及密码
Users:

package org.zhaiyujia.pkg1;

public class Users implements java.io.Serializable {//被写的对象必须序列化,实现Serializable的接口,否则写不进文件中
    private String username,password;

    public String getUsername() {
        return username;
    } 

    public void setUsername(String username) {
        this.username=username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password=password;
    }

}

TestObject:

package org.zhaiyujia.pkg1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class TestObject {
    public static void main(String[] args) {
        /*try {
            FileOutputStream oos=new FileOutputStream("f:/a.txt");
            Users user1=new Users();
            user1.setUsername("zhaiyujia");
            user1.setPassword("123456");

            ObjectOutputStream objs=new ObjectOutputStream(oos);
            //转换了oos,使FileOutputStream变成了ObjectOutputStream对象
            objs.writeObject(user1);
            System.out.println("写入对象成功");

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }*/

        try {
            FileInputStream fis = new FileInputStream("f:/a.txt");
            ObjectInputStream ois=new ObjectInputStream(fis);
            Users user1=(Users) ois.readObject();
            System.out.println(user1.getUsername()+":"+user1.getPassword());
        } 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();
        }

    }

}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhaiyujia15195383763/article/details/81256566
今日推荐