关于IO流以前写的PPT式笔记请跳转:https://blog.csdn.net/SCORPICAT/article/details/87975094#262___1451

IO流的主要结构

记忆方法

先记住四大抽象类

  • Write
  • Reader
  • InputStream
  • OutputStream

四类均有的相似类有

(以下内容阅读时忽略空格)

  • Piped Writer/Reader 与 Piped InputStream/OutputStream
  • Filter Writer/Reader 与 Filter InputStream/OutputStream
  • File Writer/Reader 与File InputStream/OutputStream (比字符流的继承结构高一级,看图)
  • Buffered Writer/Reader 与 Buffered InputStream/OutputStream(比字符流的继承结构低一级,看图)

四类均有的看似相似的有

  • String Writer/Reader 与 StringBufferedInputStream (没有相应的OutputStream)
  • CharArray Writer/Reader 与 ByteArray InputStream/OutputStream

两种输入流才有的

FilterReader下的PushbackReader

FilterInputStream下的PushbackInputStream

两种输出流才有的

PrintWriter 与 PrintStream(比字符流的继承结构低一级,看图)

字符流独有的

InputStreamReader 与 OutputStreamWriter

好像是模仿字节流的

他们下面有FileReader 与 FileWriter

字节流独有的

ObjectInputStream 与 ObjectOutputStream

FilterInputStream下的DataInputStream 与 FilterOutputStream下的DataOutputStream

孤零零的 SequenceInputStream

单独记一下字节流下的Filter系列下的子类

FilterInputStream

  • DataInputStream
  • BufferedInputStream
  • PushbackInputStream

FilterOutputStream

  • DataOutputStream
  • BufferedOutputStream
  • PrintStream

总结

File Filter Bufferd Piped 全都有

CharArray ByteArray好相似

String StringBuffered差得远

输入流有Pushback

输出流有Print呀!

字符流啊机灵鬼

假装自己是 InputStream (OutputStream Reader/Writer)

字节流啊家底厚

独占Data、Object

收养一个Sequence

Sequence没有Output

耶!Peace!

各类的使用场景

https://blog.csdn.net/qq_33394088/article/details/78512407

04 IO流(二)——IO类的记忆方法、使用场景的更多相关文章

  1. IO流,File类的测试........课堂加总结

    package liu0926; import java.io.File; import java.io.IOException; public class Text01 { public stati ...

  2. IO流的工具类

    1.需要先导入jar包: FilenameUtils import org.apache.commons.io.FilenameUtils; public class FilenameUtilesDe ...

  3. IO流----操作文件的9种方法代码实现

    IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1:          每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...

  4. Java学习之路(十二):IO流<二>

    字符流 字符流是可以直接读写字符的IO流 使用字符流从文件中读取字符的时候,需要先读取到字节数据,让后在转换为字符 使用字符流向文件中写入字符时,需要把字符转为字节在写入文件 Reader和Write ...

  5. IO流(File类,IO流的分类,字节流和字符流,转换流,缓冲流,对象序列化)

    1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public  ...

  6. IO流之Properties类

    Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 特点: 1.Hashtable的 ...

  7. Java IO 流--FileUtils 工具类封装

    IO流的操作写多了,会发现都已一样的套路,为了使用方便我们可以模拟commosIo 封装一下自己的FileUtils 工具类: 1.封装文件拷贝: 文件拷贝需要输入输出流对接,通过输入流读取数据,然后 ...

  8. Java IO流(二)

    目录 字节缓冲流 概述 BufferedOutputStream类 继承父类的共性成员方法 构造方法 BufferedInputStream类 继承自父类的方法: 构造方法 文件复制练习(增强版 使用 ...

  9. JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件 ...

随机推荐

  1. 覆盖elementui样式

    前台以表格形式展示后台数据,图片或视频点击后弹出框播放,用el-dialog实现. 希望播放视频的时候不显示dialog的背景那些. 尝试 scoped 无果 <style lang=" ...

  2. VS2008下LibTomCrypt 1.17的编译和使用《转》

    文章出处:http://blog.csdn.net/delphiwcdj/article/details/6298820 具体步骤如下: (1) 下载tomcrypt tomcrypt 1.17 VS ...

  3. 启用Win10的Linux子系统

    今天为大家介绍如何才能启用Windows10下的Linux子系统,废话不多说,直接看步骤: 启用开发者模式打开设置 点击更新和安全 点击开发者选项 启用开发人员模式 更改系统功能使用win+X快捷键调 ...

  4. 微信小程序设置全局请求URL 封装wx.request请求

    app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * metho ...

  5. 关于Android8.0 静态注册广播 行为变更的说明。

    Andorid 8.0 对广播的使用做了变更. 当广播接收器使用静态注册方式使用时,除了一些例外,这个接收器接收不到隐式广播. 注意这个“隐式”是重点. 看了网上几篇文章,对这个变更理解有误.错误的理 ...

  6. 悟空CRM(基于jfinal+vue+ElementUI的前后端分离的开源CRM系统)

    https://www.jfinal.com/share/1591 官网:http://www.5kcrm.com 官网:http://www.72crm.com 论坛:http://bbs.72cr ...

  7. MAC下快速打开指定目录(转)

    使用了这么长时间MAC,打开文件查找目录总是感觉还是不如windows来的爽快 1.通过快捷键搜索   command + 空格,输入关键词 2.通过控制台打开    1) 跳转到指定路径  cd  ...

  8. [转][linux][centos]嵌入式 Linux下编译并使用curl静态库

    #x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disa ...

  9. typeScript模块<三>

    /*模块 1 模块的的概念 2 模块导出的几种方法 1.export 导出声明 2.export 导出语句 3.export default 4.import导入模块 3 模块化封装上一讲的DB库 * ...

  10. 【转】把sqlite3数据导入到MySQL中

    之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据.如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去. 1.SQLit ...