java io 缓冲流_Java基础(五)| IO 流之使用缓冲流的正确姿势

本文详细介绍了Java中的IO流,特别是缓冲流的使用。文章首先解释了IO流的基本概念,接着阐述了IO流的分类,强调了缓冲流的作用在于提高效率。作者通过实例演示了如何使用缓冲流读取和写入文件,并对比了缓冲流与非缓冲流在效率上的差异。文章适合Java基础学习者和需要复习IO流的开发者阅读。
摘要由CSDN通过智能技术生成

9f6e72791ff6ae1801a202f8ab5543d1.png

整理下以前自学的笔记,留个念想,不喜轻喷。希望基础不好的同学看完这篇文章,能掌握缓冲流,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆。(

文末有资源领取

)

一、什么是 IO 流?

想象一个场景:

我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中。

那这个看似简单的过程,背后其实是数据的传输。

数据的传输,也就是数据的流动。

既然是流动也就会有方向,有入方向和出方向。

举个上传文件的栗子,现在有三个对象,文件、应用程序、上传的目标地址(服务器)。

简化的上传文件有两步:

应用程序读文件(此为入方向,文件读入到应用程序)

应用程序写文件(此为出方向,读完之后写到目标地址)

注意这个入和出是相对的,它相对于应用程序而言。如果相对于服务器而言,这个上传文件操作就是入方向,从应用程序读入。

Java 中 I/O 操作主要是指使用

java.io

包下的内容,进行输入、输出操作。

输入也叫做读取数据,输出也叫做作写出数据。

二、IO 流的分类

我不认同网络上很多 IO 流的图,他们只是简单的把 io 流分成字节流和字符流。

这样的分类也不是说不好,只是太臃肿、难记。

先上一张我自己总结的 IO 留的思维导图,我先把它分成了节点流和处理流,节点流是直接接触数据源的,而处理流是出于各种目的在节点流的基础上再套一层的 IO 流。

再按照操作类型,分成 8 个小类,然后才是字节、字符分类,最后才是输入、输出的分类。

具体可以看以下思维导图 (可能不清晰,有需要的在后台回复 IO 流获取原思维导图)

根据数据的流向分为:

输入流和输出流。

输入流 :

把数据从

其他设备

上读取到

内存

中的流。

输出流 :

把数据从

内存

中写出到

其他设备

上的流。

根据数据的类型分为:

字节流和字符流。

字节流 :

以字节为单位,读写数据的流。

字符流 :

以字符为单位,读写数据的流。

fbef461f506cefd6e7995853d2a5b390.png

Java IO 流

IO 流要说明白需要好几篇才行,今天复习缓冲流。

三、为什么需要缓冲流?

前面我们已经复习过字节流、字符流。

使用基本的字节输入流读取文件,就相当于将文件中的数据,通过操作系统,在通过 JVM 一个个传入到内存中,这样的话,文件读取的速度比较慢。如果使用字节缓冲流,就可以建立一个缓冲区(相当于一个数组),将缓冲区里面的数据批量传入到文件中,这样的话就提高了文件的读取速度。

一句话概括就是:

缓冲流比较高效,因为它减少了 IO 的次数。

四、使用缓冲流

缓冲流,也叫高效流,是对 4 个基本的字节、字符流的增强,所以也是 4 个流,按照数据类型分类:

字节缓冲流:

Buf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值