一、JAVA IO流框架体系 (java.io)
1、IO 流概述
Java IO 概述:
Java 中的 I/O 操作主要是指使用 Java 进行输入,输出操作。Java 所有的 I/O 机制都是基于数据流进行输入输出的,这些数据流表示了字符或者字节数据的流动序列。Java 的 I/O 流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。
IO又分为流IO(java.io)和块IO(java.nio)
Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。
流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编写比较复杂。
Java 流的 概述:
内存与存储设备之间传输数据的通道。
- IO流概述:
- IO流用来处理设备之间的数据传输
- 上传文件和下载文件
- Java对数据的操作主要是通过流的方式
- Java用于操作流的对象都在IO包中
- IO流用来处理设备之间的数据传输
2、Java IO 流的整体架构图
二、IO 流分类
在 IO 流中有很多不同的流,因此我们需要根据不同的状况去使用不同的流。
1、根据数据的流向分类
- 有输入流和输出流两种操作方式。
-
输入流:读取数据
- 输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中
- 输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中
-
输出流:写出数据
- 输出:把程序(内存)中的内容输出到磁盘、光盘等存储设备中
- 输出:把程序(内存)中的内容输出到磁盘、光盘等存储设备中
-
2、根据数据类型分类
- 字节流:数据流中最小的数据单元是字节
- 字节输入流 读取数据 InputStream
- 字节输出流 写入数据 OutputStream
- 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节(无论中文还是英文都是两个字节)。
- 字符输入流 读取数据 Reader
- 字符输出流 写入数据 Writer
- JAVA io 中流的分类大致了解之后,我们如何区分什么时候使用什么流呢?这里有一个很简单的区分方法。
- 1)如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。
- 2)如果你无法确认究竟该使用什么流,就用字节流