Java-流

转换流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
    public static void main(String[] args) {
       try(OutputStreamWriter stream = new OutputStreamWriter(new FileOutputStream("hello.txt"))) {
           stream.write("Hello,world");
       } catch (FileNotFoundException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
}

打印流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
    public static void main(String[] args) {

        try(PrintStream stream = new PrintStream(new FileOutputStream(new File("hello.txt")))) {
            stream.println("zxccvbnm");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

数据流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
    public static void main(String[] args) {

        //数据流不常用
      try(DataOutputStream dos = new DataOutputStream(new FileOutputStream("hello.txt"))) {
          //要注意编码格式问题 
          dos.writeInt(23541);
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
    }
}

对象流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
    public static void main(String[] args) {

        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("hello.txt"));
             ObjectInputStream in = new ObjectInputStream(new FileInputStream("hello.txt"))) {
            //将对象序列化存储指定路径,序列化不是纯文本
            List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
            out.writeObject(list);
            Object o = in.readObject();
            System.out.println(o);

            //如果想要自定义类可以被序列化存储,需要实现 Serializable 接口

            Student stu1 = new Student();
            stu1.name = "jack";
            stu1.age = 18;
            out.writeObject(stu1);


            System.out.println(in.readObject());

            //支持序列化操作的可以添加版本号信息,来区分不同版本,方便更新


            //在序列化时,如果我们不希望其保存某些信息,可以在修饰符前加上 transient

            //JDK内部源码中使用大量 transient 关键字,使得序列化时某些属性不会得到保存
            //节省数据空间及其缩小序列化时间


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    static class Student implements Serializable{

        private static final long serialVersionUID = 00002563;

        String name;
        transient int age;

        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值