I/O学习总结

本文详细介绍了Java I/O流的特点及其分类,包括输入流与输出流、字节流与字符流的区别,并探讨了字节流与字符流之间的转换方法及应用场景。

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

目录

前言

一、I/O

1.Java I/O流有什么特点?

2.Java I/O流分为哪几个类型?

3.字节流如何转换成字符流?

4.字节流和字符流哪个更好一些

总结









前言

本文章是在学习过程中的问答整理与总结,不定时更新,仅供参考。









一、I/O

1.Java I/O流有什么特点?

1.先进先出:最先写入输出流的数据,最先被输入流读取到

2.顺序执行:可以一个一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据

3.只读或只写:每个流只能是输入流或者输出流的一种,不能同时具备两个功能,输入流只能进行读操作,输出流只能进行写操作,在一个数据传输管道中,如果既要写入操作,又要读取操作,则要分别提供两个流

2.Java I/O流分为哪几个类型?

1.按数据流的方向(实际的I/O操作)

输入流:从文件读入到内存,只能进行读操作。

输出流:从内存读出到文件,只能进行写操作。

2.按读写的单位大小

字节流:以字节为单位,每次读入读出为8位数据,可以读取任何类型的数据(图片、文件、音乐、视频等,且Java代码接收数据只能为 byte [] 数组)

字符流:以字符为单位,每次读入读出为16位数据,只能读取字符类型数据(Java代码接收数据一般为char数组,也可以为别的)

3.按读写时是否直接与硬盘、内存等节点连接

节点流:直接与数据源相连(如直接操作数据的流类:FileInputStream)

处理流:又叫包装流,对一个已存在的流的连接进行封装,通过所封装的流的功能调用,实现数据读写。如添加个Buffer缓冲区

3.字节流如何转换成字符流?

字节输入流转字符输入流,通过 InputStreamReader 实现,该类的构造函数可以传入

InputStream对象。

字节输出流转字符输出流,通过 OutputStreamWriter 实现,该类的构造函数可以传入OutputStream对象

4.字节流和字符流哪个更好一些

个人来说,字符流更好用一些,因为许多在字符流中存在的特性,字节流中并不存在,比如使用BufferedReader 而不是 BufferedInputStream 或 DataInputStream,使用newLine()方法来读取下一行,而在字节流中还需要额外的操作。

总结

本文所写内容由翻阅整理所得,不定时更新,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值