初窥IO流

经过我们昨天对File类的学习,我们知道了File可以用于表示文件和目录的信息,对基本的文件操作已经慢慢熟练起来。

但是File它是不表示文件的内容,而在今天对IO流的大致了解后,后续的IO流操作中就可以对文件进行读写的操作啦。

接下来终于到我们的重点主题啦,那什么是IO流呢?为什么需要IO流呢?IO流有什么分类吗?

今天呢?先着重来对IO流的种类进行一个分类,对IO流进行一个概念分类讲解过程。

什么是IO流

在生活中,你可能需要使用U盘传输文件。那这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input输出output ,即流向内存是输入流,流出内存的输出流。

Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。

IO流的分类

可以看到:

  • 根据数据流向的不同可以分为:输入流和输出流
  • 根据处理数据类型的不同可以分为:字符流和字节流
  • 顶级的父类
输入流 输出流
字节流 字节输入流 InputStream 字节输出流 OutputStream
字符流 字符输入流 Reader 字符输出流 Writer

具体IO流的分类图:

当然,这里以上只是列举了常见的类,如果需要看更多的类,小伙伴们可以去查看JDK官方的文档API

字符字节流、输入输出流的概念

1. 字符流和字节流

字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:

  • 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
  • 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
  • 结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

2. 输入流和输出流

输入流只能进行读操作,输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。

总结

相信各位看官都对IO流中初窥探IO流的分类有了一定了解,期待等待下次的IO流中一部分的字节流教学吧!

当然还有很多流等着下次一起看吧!欢迎期待下一章的到来!

学到这里,今天的世界打烊了,晚安!虽然这篇文章完结了,但是我还在,永不完结。我会努力保持写文章。来日方长,何惧车遥马慢!

感谢各位看到这里!愿你韶华不负,青春无悔!

注: 如果文章有任何错误和建议,请各位大佬尽情留言!如果这篇文章对你也有所帮助,希望可爱亲切的您给个三连关注下,非常感谢啦!


作者:***爷哪吒
链接:https://juejin.cn/post/6992910611428409374
来源:掘金