Java中有几种类型的流?各自的作用是什么?

文章详细介绍了Java中的IO流,包括字节流和字符流的分类、功能和作用。字节流用于处理二进制数据,如文件输入输出,而字符流则适用于文本数据的读写,并具备编解码能力。缓冲流提高了数据读写的效率,对象流实现了对象的序列化和反序列化。转换流则作为字节流和字符流之间的桥梁,允许两者之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字节流和字符流各自的功能及作用如下:

IO字节流
输入流/输出流
文件输入流/文件输出流
缓冲输入流/缓冲输出流
对象输入流/对象输出流

流分类
InputStream/OutputStream
FilelnputStream/fileOutputStream
BufferedlnputStream/BufferedOutputStream
ObjectlnputStream/ObiectOutputStream

 类型
超类、抽象类
节点流(低级流)
处理流(高级流)
处理流(高级流)

功能
他们是所有输入流和输出流的超类,并且他们是抽象类自身是不能被实例化的,但是规定了所有流都必须具备的读写方法。
字节文件的读写操作《基础)
缓冲流内部有一个字节数组作为缓冲区,默认8K.缓冲流会将读写数据统一转换为块读写操作,因此可以提高数据的读写效率 flush方法功能是强制将缓冲流的缓存区中已经缓存的数据写出)
作用是方便读写iava对象,他们可以负责将对象与字节进行相互转换。写出的对象所属的类必须实现可序列化接口。 (对象序列化和数据持久化)

IO字符流
输入流/输出流
转换输入流/转换输出流
缓冲输入流/缓冲输出流
缓冲字符输出流(自动刷新)

流分类
Reader/Writer
InputStreamReader/OutputStreamWirter
BufferedReader/BufferedWriter
PrintWriter

类型
抽象类超类
处理流(高级流)
处理流(高级流)
处理流(高级流)

功能
读写数据是以字符为单位读写的,因此字符流天生是具有编解码能力,只适合读写文本数据
其他的字符流在流连接中使用时有一个要求,只能连接在其他字符流上,但是我们常用的低级流通常都是字节流,这会导致不能串联在一而转换流的意义就在这里,它们是可以连接在字节流上的字符流,而其他的字符流又可以连接在他们上面,因此起到“转换器”的作用。
缓冲字符流读写文本数据效率高,并且可以按行读写文本数据。
具有自动行刷新新功能的缓冲字符输出流(内部连接了BufferedWriter作为缓冲功能)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值