一分钟轻松掌握JavaIO基本框架及概念

三种分类
流操作的数据单位
传输方向的不同
流的功能不同
字节流
以字节为单位
字符流
以字符为单位
输入流
读取数据
输出流
向流中写入数据
节点流
低级流,从特定io设备读取流\n直接连接数据源进行读写
处理流
高级流,对已存在的节点进行封装和连接\n通过封装进行流的读写
总分类
字节流
字符流
字节输入流
InputStream
字节输出流
OutputStream
字符输入流
Reader
字符输出流
Writer

在JAVA里,流是一些类。

字节流(Byte Stream)
  • 字节流以字节为单位处理数据,不经过字符编码转换,直接处理原始数据。
  • 常见的字节流类有:InputStream(输入)、OutputStream(输出)。
字符流(Character Stream)
  • 字符流以字符为单位处理数据,通常用于文本文件操作。
  • 字符流内部实际上还是使用字节流来完成数据的传输,但在传输前后会进行字符编码和解码。
  • 常见的字符流类有:Reader(输入)、Writer(输出)。
输入流(Input Stream)
  • 用于从数据源(如文件、网络等)读取数据。
输出流(Output Stream)
  • 用于将数据写入目标位置(如文件、网络等)。
顺序存取文件(Sequential Access File)
  • 顺序存取文件只能按照文件内部的顺序来读写数据,通常不支持直接跳转到文件的任意位置进行读写。
随机存取文件(Random Access File)
  • 随机存取文件允许程序直接访问文件的任意位置进行读写操作。
  • 在Java中,RandomAccessFile类提供了这种功能。
各种派生的流类
  • 不同的流类提供了不同的特性和功能,以满足不同的数据处理需求。
  • 例如,FileInputStreamFileOutputStream是字节流的派生类,用于文件操作;BufferedReaderBufferedWriter是字符流的派生类,提供了缓冲功能以提高读写效率。

二进制流和文本流的区别

二进制流(Binary Stream)
  • 二进制流主要用于处理二进制数据,如图片、视频、音频等文件。
  • 二进制流在读写数据时不会进行字符编码转换,直接以字节为单位处理数据。
  • 二进制流支持更广泛的数据类型,可以处理任意类型的二进制数据。
文本流(Text Stream)
  • 文本流主要用于处理文本数据,如程序代码、文档等。
  • 文本流在读写数据时会进行字符编码转换,如UTF-8、GBK等。
  • 文本流通常只处理字符类型的数据,因此不支持直接处理二进制数据。

总结

流提供了一种抽象的数据传输方式,使得程序能够方便地处理各种类型的数据。在选择使用字节流还是字符流时,需要根据实际的数据类型和需求来决定。如果需要处理二进制数据或进行底层的文件操作,通常选择字节流;如果需要处理文本数据或进行文本文件的读写操作,通常选择字符流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值