Utiliser la sérialisation et la désérialisation pour manipuler les valeurs de la collection

import java.io.*;
import java.util.ArrayList;

/*
    练习:
        序列化集合
            当我们想在文件中保存多个对象的时候
            可以把多个对象存储到一个集合中
            对集合进行序列化和反序列化
   分析:
        1.定义一个存储Person对象的Arraylist集合
        2.往Arraylist集合中存储Person对象
        3.创建一个序列化流的ObjectOutputStream对象
        4.使用ObjectOutputStream对象中的方法writerObject,对集合进行序列化
        5.创建一个反序列化ObjectInputStream对象
        6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
        7.把Object类型的集合转换成为Arraylist类型
        8.遍历Arraylist集合
        9.释放资源

 */
public class Demo05 {
    
    

    public static void main(String[] args) throws IOException, ClassNotFoundException {
    
    
        //1.定义一个存储Person对象的Arraylist集合
        ArrayList<Person> arr = new ArrayList<>();
        //2.往Arraylist集合中存储Person对象
        arr.add(new Person("张三",23));
        arr.add(new Person("李四",23));
        arr.add(new Person("王五",23));
        arr.add(new Person("马六",23));
        // 3.创建一个序列化流的ObjectOutputStream对象
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\Users\\why\\Desktop\\untitled\\src\\test\\a.txt"));
        //4.使用ObjectOutputStream对象中的方法writerObject,对集合进行序列化
        oos.writeObject(arr);
        //5.创建一个反序列化ObjectInputStream对象
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\\Users\\why\\Desktop\\untitled\\src\\test\\a.txt"));
        //6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合,会生成一个class文件。
        Object o = ois.readObject();
        //7.把Object类型的集合转换成为Arraylist类型(强转)
        ArrayList<Person> arr1= (ArrayList<Person>)o;
        //8.遍历Arraylist集合
        for (Person p : arr1) {
    
    
            System.out.println(p);
        }

        //9.释放资源
        ois.close();
        oos.close();

        }




    }


Flux d'impression

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class Demo06 {
    
    
    public static void main(String[] args) throws FileNotFoundException {
    
    
        //创建一个打印流PrintStream对象,构造方法中绑定要输出的目的地
        PrintStream ps = new PrintStream("src\\a1.txt");
        //如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表97->a
        ps.write(97);
        //如果使用自己特有的方法print/printLn方法写数据,写的数据据就是原样输出97->97
        ps.println(97);
        ps.close();
    }
}

La sortie de la destination spécifiée du flux d'impression peut être sortie dans le dossier

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class Demo07 {
    
    
    public static void main(String[] args) throws FileNotFoundException {
    
    
        System.out.println("这个是在控制台输出的内荣");
        PrintStream ps = new PrintStream("src\\b.txt");
        System.setOut(ps);//把输出语句的目的地改变为打印流的目的地
        ps.println("这个是在输出流的打印流中输出的打印");
        ps.close();
    }
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41977380/article/details/112687265
conseillé
Classement