Java总结IO四篇:
一、字符流概览
读入流I(用于读取数据源--内存、磁盘、键盘)
Reader
|---★InputStreamReader <- isr- 字节输入转换字符流
|---★FileReader <- pr-文件读取流
|---★BufferedReader <- pfw-缓冲读取
|---PipedReader
|---★CharArrayReader <- car-字符数组读取流
|---★StringReader <- sr-字符串读取流
|---FilterReader
|---URLReader
输出流O(将数据源引向目的地--内存、磁盘、控制台)
Writer
|---★OutputStreamWriter <-osw-字节输入转换字符流
|---★FileWriter <- fw-文件书写流
|---★BufferedWriter <- bfw-缓冲书写
|---PipedWriter
|---★CharArrayWriter <- caw-字符数组书写流
|---★StringWriter <- sw-字符串书写流
|---FilterWriter
|---★PrintWriter <- pw-字符打印输出流
二、字节流概览
读入流I(用于读取数据源--内存、磁盘、键盘)
InputStream
|---★FileInputStream <- fis-文件输入流
|---★ByteArrayInputStream <- pais-字节数组输入流
|---★ObjectInputStream <- pis-对象输入流
|---★StringBufferInputStream <- sbis-字符串缓冲输入流
|---PipedInputStream <- pis-管道输入流
|---FilterInputStream <- ftis-过滤输入流
|---★DataInputStream <- 基本类型输入流
|---★BufferedInputStream <- 缓冲输入流
|---DigestInputStream
|---PushbackInputStream
输出流O(将数据源引向目的地--内存、磁盘、控制台)
OutputStream
|---★FileOutputStream <- fos-文件输出流
|---★ByteArrayOutputStream <- baos-字节数组输出流
|---★ObjectOutputStream <- oos-对象输出流
|---PipedOutputStream <- pos-管道输出流
|---FilterOutputStream <- ftos-过滤输出流
|---★DataOutputStream <- dos-基本类型输出流
|---★BufferedOutputStream <- bfos-缓冲输出流
|---DigestOutputStream
|---★PrintStream <- ps-字节打印输出流
三、故事时间:
看起来这么多的类,是不是有点晕,先且听一个故事
第一章 背景(四大流派)
传说中江湖四大流派
字符输入流
,
字符输出流
,
字节输入流
,
字节输出流
,原本出自一家[
IO流
]。
IO流
派根据性别修炼功法,分为
输入流
、
输出流
两大支派,男习
输入流
,女习
输出流
(可以理解为:男生赚钱输入,女生花钱输出...千万别多想...)
由于【字符】宗师偏爱文本,和【字节】宗师
万物平等
理念不合,所谓道不同,不相为谋。
【字符】宗师敢爱敢恨,自立门派,
IO流
自此分成两家:
字符流
、
字节流
字符输入流
开山祖师名叫
Reader
,性别男 ;
字符输出流
开山祖师名叫
Writer
,性别女。
相传是夫妻二人,两人合作为
文本操作界
带来屡屡清风,但看到【图片】,【视频】等人就心有余而力不足了。
字节输入流
开山祖师名叫
InputStream
,性别男 ;
字节写流
开山祖师名叫
OutputStream
,性别女。
相传是也夫妻二人,两人合作称为
二进制操作界
的栋梁,但识别字符的能力偏弱。
第二章 奇子(转换字节流)
字符流
和
字节流
向来各行其事,很少有交集。
但
Reader
和
Writer
有两个奇子,名叫
InputStreamReader
(男)和
OutputStreamWriter
(女),
可以和
字节流
打交道,并让
字节流
派的人归于
字符流
派。世称两人:
转换字节流
第三章 当代(四大流派掌门人)
字符输入流
掌门人:
FileReader
,性别男,
InputStreamReader
之子
字符输出流
掌门人:
FileWriter
,性别女,
OutputStreamWriter
之女
字节输入流
掌门人:
FileInputStream
,性别男,
InputStream
之子
字节输出流
掌门人:
FileOutputStream
,性别女,
OutputStream
之女
第四章 装备(装饰流)
四大流派都拥有装备,根据不同装备可以更容易做事
装备1:黄金卡车--Buffered(支持四大门派)
作用:将数据装入卡车,不用一个一个的搬,而是一车一车的搬。
字符输入流
配车:
BufferedWriter
字符输出流
配车:
BufferedReader
字节输入流
配车:
BufferedInputStream
字节输出流
配车:
BufferedOutputStream
装备2:基本数据类型黄金铲--Data(仅支持字节两派)
作用:读写基本数据类型实现起来比较费劲,要考虑到不同类型占的字节数区分对待
有了这个装备,一铲一个,给你自动分类型,存取基本数据类型的不二法器
字节输入流
配铲:
DataInputStream
字节输出流
配铲:
DataOutputStream
装备3:其他数据类型黄金铲
1.字节数组铲--ByteArray(仅支持字节两派)
字节输入流
配铲:
ByteArrayInputStream
字节输出流
配铲:
ByteArrayOutputStream
2.字符数组黄金铲--CharArray(仅支持字符两派)
字符输入流
配铲:
CharArrayReader
字符输出流
配铲:
CharArrayWriter
3.字符串组黄金铲--String(支持三大门派)
字符输入流
配铲:
StringReader
字符输出流
配铲:
StringWriter
字节输入流
配铲:
StringBufferInputStream