关于io流知识的简单梳理

流是对数据输入输出的抽象。

io流的类型

1)按照传输单位划分,可分为字节流字符流

字节流:处理单元为1个字节,可以处理任何类型的io,适用于处理二进制的对象。

字符流:处理单位为2个字节的Unicode字符,适用于处理字符,字符数组,字符串。

2)按照流向划分,可分为输入流输出流

输入流:以文件为例,将数据从其他文件读到本文件。

输出流:以文件为例,将数据从本文件写到其他文件。

io流类型的判断

1)类名带有Reader,Writer的是属于字符流,字节流反之

2)输入输出流可以见名知意

缓冲流与非缓冲流的区别

非缓冲流:是一个字节一个字节的读取

缓冲流:是可以将获取的数据放入缓冲区批量读取,减少与磁盘的交互,提高效率

PrintWriter和BufferedWriter的选择

PrintWriter与BufferedWriter都作为常用的字符输出流,使用哪个比较好?

1)在Socket编程中,尽量用PrintWriter取代BufferedWriter

PrintWriter的优点:

  1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串;

  2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法;

  3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生;

  4. PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush)

2)由于PrintWriter吞没了异常,我们在一些需要异常处理,或需要保证程序的稳定性时推荐使用BufferdWriter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值