博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java IO6 :IO总结
阅读量:7280 次
发布时间:2019-06-30

本文共 935 字,大约阅读时间需要 3 分钟。

字节流、字符流继承关系

前几篇文章讲解了字节流、字符流的使用,不过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可以直接操作文件的读写,它们没有做缓存

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

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

转载于:https://www.cnblogs.com/qypx520/p/5736565.html

你可能感兴趣的文章
[ACM_模拟] ZJUT 1155 爱乐大街的门牌号 (规律 长为n的含k个逆序数的最小字典序)...
查看>>
采用dlopen、dlsym、dlclose加载动态链接库【转】
查看>>
iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)
查看>>
[游戏模版13] Win32 透明贴图 主角移动
查看>>
保护SQL语句不被Sql Profiler / 事件探查器 捕获跟踪到<转>
查看>>
1.7. Synthesizer
查看>>
GIT和SVN比较
查看>>
javascript:getElementsByName td name
查看>>
隐马尔可夫模型(一)——马尔可夫模型
查看>>
ECharts简单入门
查看>>
QComboBox 和 QSpinBox 使用方法
查看>>
shell编程——循环执行
查看>>
操作系统复习笔记(四)
查看>>
经典博客---《数据结构与算法》
查看>>
C#开发微信门户及应用(46)-基于Bootstrap的微信门户应用管理系统功能介绍
查看>>
php访问mysql 封装
查看>>
C#开发微信门户及应用(20)-微信企业号的菜单管理
查看>>
Git介绍
查看>>
activiti入门
查看>>
Java——Ajax+Tomcat完成异步请求
查看>>