IO流的概述

目录

        什么是IO流?

        有多种分类方式:

        IO流四大家族的首领:

        所有的流都实现了:

        Java.io包下需要掌握的流有16个:


什么是IO流?

  • I :Input
  • O :Output
  • 通过IO可以完成硬盘文件的读和写。

  • IO流的分类:
    • 输入流,输出流
    • 字节流,字符流

有多种分类方式:

​​​​​​​

  • 1、按照流的方向进行分类:
    • 往内存中去,叫做输入(Input),或者叫做读(read)
    • 从内存中出来,叫做输出(Output),或者叫做写(Write)
  • 2、按照读取数据方式不同进行分类:
    • 有的流是按照字节的方式读取数据,一次读取一个字节。这种流是万能的,什么类型的文件都可以读取。包括:文本文件,图片,声音文件,视频文件…….
    • 有的流是按照字符的方式读取数据的,一次读取一个字符,这种流是为了方便读取普通文本文件而存在的,这种流不能读取:图片,声音,视频等文件,只能读取纯文本文件,连word文件都无法读取。

IO流四大家族的首领:

Java.io.InputStream   字节输入流

Java.io.OutputStream    字节输出流

Java.io.Reader   字符输入流

Java.io.writer   字符输出流

注意:在java中只要类名以Stream结尾的都是字节流,以Reader/Writer结尾的都是字符流。

四大家族的首领都是抽象类。(abstract class)

所有的流都实现了:

  • Java.io.Closeable接口,都是可关闭的,都有close()方法。
  • 流毕竟是一个管道,这个是内存和硬盘之间的通道,用完之后一定要关闭。不然会耗费很多资源。
  • 所有的输出流都实现了:
    • Java.io.Flushable接口,都是可刷新的,都是flush()方法。
    • 养成一个好习惯,输出流在最终输出之后,一定要记得flush()刷新一下。
    • 这个刷新表示将通道/管道当中剩余未输出的数据强行输出完(清空管道)
    • 刷新的作用就是清空管道。
    • 注意:如果没有flush()可能会导致丢失数据。

Java.io包下需要掌握的流有16个:

  • 文件专属:
    • Java.io.FileInputStream
    • Java.io.FileOutputStream
    • Java.io.FileReader
    • Java.io.FileWriter
  • 转换流:将字节流转换成字符流
    • Java.io.InputStreamReader
    • Java.io.OutputStreamWriter
  • 缓冲流专属:
    • Java.io.BufferedReader
    • Java.io.BufferedWriter
    • Java.io.BufferedInputStream
    • Java.io.BufferedOutputStream
  • 数据流专属:
    • Java.io.DataInputStream
    • Java.io.DataOutputStream
  • 标准流专属:
    • Java.io.PrintWriter
    • Java.io.PrintStream
  • 对象专属流:
    • Java.io.ObjectInputStream
    • Java.io.ObjectOutputStream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@小红花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值