鸟哥Java学习之IO流

字符流:Reader,Writer
字符流其实就是字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应文字。再对文字进行操作。
即字节流+编码。
这些体系的子类都以父类名作为后缀,子类名的前缀是该对象的功能。
如果要操作文字数据,优先考虑字符流
3.打印流、序列流、操作对象
打印流打印各种数据形式。负责目的
1. PrintStream
      注意:保持数据的表示形式意思是print的内容是什么就是什么

2.PrintWriter
序列流:SequenceInputStream将其他输入流逻辑串联起来。 负责源
用法:文件切割合并
构造参数是枚举类型,用集合工具类方法

操作对象:ObjectInputStream ,ObjectOutputStream 
用法:将堆内存中的对象持久化,存到硬盘上(一般是**.object文本文件),需要时直接读取不需重新创建。静态类型不会被序列化,非静态数据不想被序列化,加上关键字transient
注意:对象需要实现序列化Serializable接口
Serializable接口: 对象进行序列化会给对象分配一个ID,反序列化时用于验证,用于判断类和对象是否是同一个版本。
实际就是给被序列化的类加ID
注意:建议显示声明serialVersionUID,防止出问题
管道流:PipedInputStream ,PipedOutputStream 
管道输入流连接到管道输出流,结合多线程使用

4.实际应用





         2. 是否需要转换;
                   字节流转字符流,InputStreamReader                       
                                                       OutputStreamWriter
                    字符 流转 字节 流,FileInputStream                     
                                                      File OutputStream
例如:将 键盘数据写入到文件
    
    
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值