本文源码:GitHub·点这里 || GitEE·点这里
一、IO流分类
1、分类角度
流的方向
- 输出流:从数据源中读取数据到利用中的流;
- 输入流:从利用中将数据写入到目的地的流;
流数据类型
- 字节流:以字节模式来读写的流,标识是名称以Stream结尾;
- 字符流:以字符模式来读写的流,标识是名称以Writer、Reader结尾;
- 管道流:以数据块为单位来解决,缓冲区就是用于读写的数据块;
流的角色
- 节点流:能够从一个节点或者向一个节点读/写数据的流,也被称为低级流;
- 解决流:对存在的流进行连贯或者封装、封装后的流来进行读/写、也被称为高级流。
2、API体系
5个外围类ObjectOutputStream:File、OutputStream、InputStream、Writer、Reader;
1要害接口:Serializable;
二、API细节分类
1、字节输出流
InputStream:字节输出流是所有字节输出流的父类、为所有字节输出流提供一个规范、和根本的与读取字节无关的办法及简略的实现。
FileInputStream:文件字节输出流以字节的模式将文件中数据读取到利用中;
BufferedInputStream:缓冲字节输出流,提供缓冲性能,提高效率;
ByteArrayInputStream:字节数组输出流用于读取其内置缓存字节数组中的字节;
PipedInputStream:管道字节输出流必须与PipedOutputStream联合应用,用于线程之间的通信;
FilterInputStream:过滤器字节输出流,重写InputStream办法,为字节输出解决流提供扩大;
DataInputStream:数据字节输出流,个别与DataOutputStream联合应用;
ObjectInputStream:对象字节输出流,与ObjectOutputStream联合应用;
2、字节输入流
OutputStream:字节输入流,InputStream作用一样,为所有字节输入流提供一个规范、定义了一些根本输入字节的办法与简略实现;
FileOutputStream:文件字节输入流,将字节写入指定指标的文件源中;
BufferedOutputStream:缓冲字节输入流,提供缓冲性能、提高效率;
ByteArrayOutputStream:字节数组输入流,将字节写入到其自身所带的一个内置缓存字节数组中;
PipedoutputStream:管道字节输入流,必须与PipedInputStream联合应用、用于线程之间的通信;
FilterOutputStream:过滤字节输入流,为字节输入解决流提供扩大;
DataOutputStream: 数据字节输入流,个别与DataInputStream联合应用;
ObjectOutputStream:对象字节输入流,通常与ObjectInputStream联合应用;
PrintStream:字节打印流,字节输入流进行装璜、提供打印各种数据类型的性能;
3、字符输出流
Reader:字符输出流,为所有字符输出流提供一个规范、只有根本的读取办法的定义和简略的实现;
InputStreamReader:字节转换流,将字节流转换成字符流,并且能够指定字节转成字符时应用的编码;
BufferedReader:缓冲字符输出流,为字符输出流提供缓冲性能、提高效率;
CharArrayReader:字符数组输出流,将其内置字符缓存数组中的数据读取到利用中;
PipedReader:管道字符输出流,与PipedWriter联合应用、用于线程之间的通信;
FilterReader:过滤字符输出流,为字符输出流提供扩大;
FileReader:文件字符输出流,字符的模式读取文件中的内容;
4、字符输入流
Writer:字符输入流,所有字符输入流提供一个规范,根本写入的办法和简略的实现;
OutputStreamWriter:字节输入转换流,用于将字节输入流转化成字符输入流。能够指定编码转化;
BufferedWriter:缓存字符输入流,提供缓冲性能、提高效率;
CharArrayWriter:字符输入流,用于将字符写入其内置缓存字符数组中;
PipedWriter:管道字符输入流,与PipedReader联合应用,用于线程之间的通信;
FileWriter:文件字符输入流,用于将字符写入到指定文件中;
PrintWriter:字符打印流,将各种数据以字符的模式打印;
三、File文件类
1、构造方法
File(String pathname):指定文件或者文件夹的门路创立一个File文件;
File(File parent,String child):依据parent形象路径名和child路径名字符创立新的File实例;
2、门路问题
绝对路径:该文件在硬盘上的残缺门路。绝对路径个别都是以盘符结尾的。
相对路径: 相对路径就是资源文件绝对于以后程序所在的门路。
. 以后门路
.. 上一级门路
3、文件的创立
createNewFile():在指定地位创立一个空文件,胜利返回true,已存在就不创立而后返回false;
mkdir():在指定地位创立目录,这只会创立最初一级目录,下级目录不存在就抛异样;
mkdirs():在指定地位创立目录,这会创立门路中所有不存在的目录;
4、删除文件
delete() 删除文件或者一个空的文件夹,如果文件夹且不为空,则不能删除,胜利返回true,失败返回false;
5、判断办法
exists():文件或文件夹是否存在;
isFile():是否是一个文件,如果不存在,则始终为false;
isDirectory():是否是一个目录,如果不存在,则始终是false;
6、获取文件信息
getName():获取文件或文件夹名称,不蕴含下级门路;
getPath():返回绝对路径,能够是相对路径,然而目录要指定
四、编码解码
字节流读取的是文件中的二进制数据,不会主动转为能够看懂的字符;字符流:把读到的数据进行对应的编码与解码。
五、源代码地址
GitHub·地址https://github.com/cicadasmileGitEE·地址https://gitee.com/cicadasmile
举荐浏览:编程体系整顿
项目名称 |
---|
【Java形容设计模式,算法,数据结构】 GitHub==GitEE |
【Java根底、并发、面向对象、Web开发】GitHub==GitEE |
【SpringCloud微服务根底组件案例详解】GitHub==GitEE |
【SpringCloud微服务架构实战综合案例】GitHub==GitEE |
【SpringBoot框架根底利用入门到进阶】GitHub==GitEE |
【SpringBoot框架整合开发罕用中间件】GitHub==GitEE |
【数据管理、分布式、架构设计根底案例】GitHub==GitEE |
【大数据系列、存储、组件、计算等框架】GitHub==GitEE |