1. 结构:

字节流:InputStream,OutputStream

字符流:Reader,Writer

2. 字符流 和 字节流:

(1)Reader:读取字符流的抽象类

BufferedReader:将字符存入缓冲区,再读取

  LineNumberReader:带行号的字符缓冲输入流

InputStreamReader:转换流,字节流和字符流的桥梁,多在编码的地方使用

  FileReader:读取字符文件的便捷类。

(2)Writer:写入字符流的抽象类

BufferedWriter:将字符存入缓冲区,再写入

OutputStreamWriter:转换流,字节流和字符流的桥梁,多在编码的地方使用

  FileWriter:写入字符文件的便捷类。

(3)InputStream:字节输入流的所有类的超类

ByteArrayInputStream:含缓冲数组,读取内存中字节数组的数据,未涉及流

FileInputStream:从文件中获取输入字节。媒体文件

  BufferedInputStream:带有缓冲区的字节输入流

  DataInputStream:数据输入流,读取基本数据类型的数据

ObjectInputStream:用于读取对象的输入流

PipedInputStream:管道流,线程间通信,与PipedOutputStream配合使用

SequenceInputStream:合并流,将多个输入流逻辑串联。

(4)OutputStream:此抽象类是表示输出字节流的所有类的超类

ByteArrayOutputStream:含缓冲数组,将数据写入内存中的字节数组,未涉及流

FileOutStream:文件输出流,将数据写入文件

  BufferedOutputStream:带有缓冲区的字节输出流

  PrintStream:打印流,作为输出打印

  DataOutputStream:数据输出流,写入基本数据类型的数据

ObjectOutputStream:用于写入对象的输出流

PipedOutputStream:管道流,线程间通信,与PipedInputStream配合使用

3. 流操作规律:

(1)明确数据源和目的:

  数据源:读取,InputStream和Reader

  目的:写入,OutStream和Writer

(2)数据是否是纯文本:

  :字符流,Reader,Writer

  :字节流,InputStream,OutStream

(3)明确数据设备:

  源设备:内存、硬盘、键盘

  目的设备:内存、硬盘、控制台

(4)是否提高效率:用BufferedXXX

Java基础知识强化之IO流笔记61:输入流 和 输出流 使用总结的更多相关文章

  1. Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用

    1. 可以参照之前写的笔记:   Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...

  2. Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍

    1. I/O 简介 I/O ( 输入/输出  ):指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的. ...

  3. Java基础知识强化之IO流笔记68:Properties和IO流集合使用

    1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public v ...

  4. Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

    1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...

  5. Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  6. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  7. Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...

  8. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解)

  9. Java基础知识强化之IO流笔记83:NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

随机推荐

  1. poj2749

    万变不离其宗 只要搞清楚题目的基本模型 搞清楚边是一种推导出的关系 搞清楚里面的逻辑关系 那就没什么难的了…… 二分+sat,没什么好说的 ; type node=record point,next: ...

  2. bzoj1056

    花了一上午大概复习了一下splay,treap 像这种裸的数据结构题在js应该会越来越少 不过练练手也好, 这就是平衡树+hash,如果这是单纯的BST应用,还是写treap吧,好调试 ;       ...

  3. BZOJ_1221_ [HNOI2001]_软件开发(最小费用流,网络流24题#10)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1221 n天,每天需要r个毛巾,用完以后可以洗,要么花fa洗a天,要么花fb洗b天,毛巾不够了可 ...

  4. ☀【Zepto】

    http://zeptojs.com/ https://github.com/madrobby/zepto Zepto 中文手册 http://www.360weboy.com/handbook/ze ...

  5. VS2012启用SQLite的Data Provider

    VS 2012默认是不带的SQLite的Data Provider,所以无法直接在VS 2012里管理SQLite的数据库,自然也不能在VS里像SQL Server那样直接生成Entity Frame ...

  6. C#.NET 打印连续纸高度动态变化(基于长江支流的金质打印通)

    问题是这样的,打印机使用的是卷筒的连续纸,要打印的内容因为数据行数不同,高度会有变化.这时如果能在打印时动态改变纸张大小(其实只改变高度即可)当然是最好的选择. 我使用了网上久负盛名的[长江支流]的“ ...

  7. 【HTML】Advanced3:Tables: Columns, Headers, and Footers

    1. <table> <colgroup> <col> <col class="alternative"> <col> ...

  8. vim+gdb+ddd+xxgdb精彩的程序调试

    //-------------------------------------------------------------------------------------------------- ...

  9. jsp网站与discuz论坛用户同步

    需求分析: 要想实现A(jsp网站)和B(discuz论坛)的同步,这里说的同步指的是 在AB网站任意一方注册之后在另一方都可以直接登录 AB两网站之间的用户登陆状态是同步的,在任意一方登录后,另一方 ...

  10. Docker系列(二)组件介绍

    镜像 镜像是一个只读的模版,可以用来创建Docker容器. 容器 Docker利用容器来运行应用,容器是从镜像创建的运行实例.它可以被启动.开始.停止.删除.每个容器都是互相隔离的,保证安全的平台.可 ...