其他种类的流

一、转换流

1、 OutputStreamWriter——指定编码将要写入文件的字符编码成字节

1.1构造方法:

(1)public OutStreamWriter(OutputStream out); 创建使用默认字符编码的OutputStreamWriter对象(默认为UTF-8)

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("test.md"));

(2)public OutStreamWriter(OutputStream out,String charsetName); 指定字符编码名

2、InputStreamReader——将读取的字节变为字符

2.1构造方法:

(1)public InputStreamReader(InputStream in); 创建使用默认字符编码的InputStreamReader对象(默认为UTF-8)

InputStreamReader in = new InputStreamReader(new FileInputStream("test.md"));

(2)public InputStreamReader(InputStream in,String charsetName); 指定字符编码名


二、序列化流(使用static transient修饰的成员变量无法进行序列化)

1、ObjectOutputStream——将对象序列化成字节存储到文件中

1.1构造方法:

 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("test.md"));

1.2特有方法:

        Test test = new Test("李",15);
        out.writeObject(test);//传入一个对象

2、ObjectInputStream——读取对象

2.1构造方法:

ObjectInputStream in = new ObjectInputStream(new FileInputStream("test.md"));

2.2特有方法:

Object o = in.readObject();

注:1.自定义类对象需要继承Serializable类   

public class Test implements Serializable

2.直接读取对象,只能获取到地址,需要获取到输入对象的具体值,需要在自定义类中重写toString()方法 

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

 3.为了防止序列化,反序列化出现问题,可以定义一个固定的序列号

private static final long serialVersionUID=1;

三、打印流——PrintStream

1、构造方法

PrintStream print = new PrintStream("test2.txt");

2、特有方法

System.setOut(print);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值