字节流、字符流继承关系

前几篇文章讲解了字节流、字符流的使用,不过Java提供给用户的流类远不止此,限于篇幅原因,没办法一一讲解,而且也没有必要一一讲解,就像我在写博客的时候多次提到的,有问题的时候学会查JDK API即可。OK,虽然不一一讲解每种流,我自己简单画了几张UML图,说明一下字节输入流、字节输出流、字符输入流、字符输出流这四个流类的子类继承关系。

1、字节输入流

2、字节输出流

3、字符输入流

4、字符输出流

总结一下流类的使用

1、File是一些文件/文件夹操作的源头,File代表的就是文件/文件夹本身,因此无论如何,使用IO的第一步是建议开发者根据路径实例化出一个File

2、考虑使用字符流还是字节流。操作文本一般使用字符流,即Reader和Writer;操作字节文件使用字节流,即InputStream和OutputStream

3、选择使用输入流还是输出流。把内容从文件读入Java内存使用输入流,即Reader和InputStream;把内容从Java内存读到文件使用输出流,即Writer和OutputStream

4、使用字符流使用BufferedReader和BufferedWriter,它们的构造函数中的参数分别是Reader和Writer,因此既可以实例化出FileReader和FileWriter,也可以实例化出InputStreamReader和OutputStreamWriter,作为构造函数的参数传入BufferedReader和BufferedWriter

5、FileInputStream和FileOutputStream可以直接操作文件的读写,它们没有做缓存,字节流的缓存可以使用BufferedInputStream和BufferedOutputStream

6、ObjectOutputStream和ObjectInputStream,它们分别以OutputStream和InputStream作为构造函数的参数,因此可以实例化出FileOutputStream和FileInputStream并传入

另外,请知,IO是Java的23种设计模式中的装饰器模式的典型应用,这在讲解设计模式的时候会专门讲到。

java 8 io_Java IO8:IO简单总结相关推荐

  1. java 快速io_Java编程在ICPC快速IO实现源码

    本文将介绍Java在ICPC快速IO实现方法,下面看看具体代码. 不处理EOF: import java.io.OutputStream; import java.io.IOException; im ...

  2. Java基础:常用IO流

    1. 数据流 1.1 概述 数据流是操作基本数据类型的流,分为数据输入流,数据输出流. 1.2 数据输入流 1.DataInputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类 ...

  3. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  4. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  5. java图片简单爬虫_[Java教程]使用jsoup进行简单的爬虫操作爬取图片

    [Java教程]使用jsoup进行简单的爬虫操作爬取图片 0 2015-12-01 17:00:27 package com.guanglan.util;import java.io.File;imp ...

  6. java播放声音类和一个简单示例

    java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下:  import java.io.File; import java.io.IOException; import javax.so ...

  7. java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案

    package com.cjh.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  8. 重拾Java基础知识:IO流

    I0流 前言 字节流 InputStream OutputStream 字符流 Reader Writer 缓存流 转换流 序列化流 数据流 字节数组流 打印流 校验流 数据压缩 ZIP压缩和解压 G ...

  9. 【Java网络编程与IO流】Java之Java Servlet详解

    Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...

最新文章

  1. 如何彻底卸载mysql(xp)
  2. Hyperscan-5.1.0 安装
  3. VTK:Medical之MedicalDemo2
  4. oracle排名怎么去除空值影响,Oracle排序中null值处理方法讲解
  5. 算法系列之图--DFS
  6. 快速解决:阿里云ECS实例远程桌面连接 发生身份验证错误。要求的函数不受支持 !
  7. VSCode自定义代码片段8——声明函数
  8. 1.2 Enterprise Library 应用程序块
  9. STM32工作笔记0096---用sprintf分配内存
  10. 2018年php还是python好_2018年PHP还值得学习吗?
  11. 工作3年,还不懂单点登录系统?看看这8幅漫画~
  12. c语言 步进电机 程序,步进电机c语言控制程序
  13. TSP、MTSP问题遗传算法详细解读及python实现
  14. 腾讯云服务器无限更换ip,腾讯云服务器免费更换IP额度不足利用弹性IP地址更换...
  15. 深入理解Instrument
  16. 北大学子求职经历与建议(IT类)
  17. 经验分享-iMX8MQ设计底板硬件指南-第一章
  18. ppt编辑器android,ppt编辑器
  19. table 汽车之家 车型对比 简单实现 列变行
  20. 计算机运算器由什么组成部分,什么是运算器_运算器由什么组成

热门文章

  1. Chapter 5 Exercises Problems
  2. jQuery学习教程(一):入门
  3. python 比赛成绩预测_大数据新研究:用六个月的跑步记录准确预测马拉松完赛成绩...
  4. java builder pool_每周10道Java面试题:String, String Pool, StringBuilder
  5. bootstrap综合大作业_齐齐哈尔市克东县城市管理综合执法局昼夜奋战清冰雪,全力以赴保畅通...
  6. YII2 服务器验证码不显示
  7. neditor 自定义工具栏配置
  8. 力扣Java解数独_LeetCode 力扣 37. 解数独
  9. 计算机网络协议包头赏析-TCP
  10. html如何查看文档,查看文档