java流家族_1.1.2 完整的流家族
1.1.2 完整的流家族
与C语言只有单一类型FILE*包打天下不同,Java拥有一个流家族,包含各种流类型,其数量超过60个!请参见图1-1和图1-2。
让我们把流家族中的成员按照它们的使用方法来进行划分,这样就形成了处理字节和字符的两个单独的层次结构。正如所见,InputStream和OutputStream类可以读写单个字节或字节数组,这些类构成了图1-1所示的层次结构的基础。要想读写字符串和数字,就需要功能更强大的子类,例如,DataInputStream和DataOutputStream可以以二进制格式读写所有的基本Java类型。***,还包含了多个很有用的流,例如,ZipInputStream和ZipOutputStream可以以常见的ZIP压缩格式读写文件。
另一方面,对于Unicode文本,可以使用抽象类Reader和Writer的子类(请参见图1-2)。Reader和Writer类的基本方法与InputStream和OutputStream中的方法类似。
read方法将返回一个Unicode码元(一个在0~65535之间的整数),或者在碰到文件结尾时返回-1。write方法在被调用时,需要传递一个Unicode码元(请查看第Ⅰ卷第3章有关Unicode码元的讨论)。
还有4个附加的接口:Closeable、Flushable、Readable和Appendable(请查看图1-3)。前两个接口非常简单,它们分别拥有下面的方法:
InputStream、OutputStream、Reader和Writer都实现了Closeable接口。
注意:java.io.Closeable接口扩展了java.lang.AutoCloseable接口。因此,对任何Closeable进行操作时,都可以使用try-with-resource 语句(try-with-resource语句是指声明了一个或多个资源的try语句—译者注)。为什么要有两个接口呢?因为Closeable接口的close方法只抛出IOException,而AutoCloseable.close方法可以抛出任何异常。
而OutputStream和Writer还实现了Flushable接口。
Readable接口只有一个方法:
CharBuffer类拥有按顺序和随机地进行读写访问的方法,它表示一个内存中的缓冲区或者一个内存映像的文件(请参见1.7.1节“缓冲区数据结构”以了解细节)。
Appendable接口有两个用于添加单个字符和字符序列的方法:
CharSequence接口描述了一个char值序列的基本属性,String、CharBuffer、StringBuilder和StringBuffer都实现了它。
在流类的家族中,只有Writer实现了Appendable。
【责任编辑:book TEL:(010)68476606】
点赞 0
java流家族_1.1.2 完整的流家族相关推荐
- Java字节流和字符流,是时候总结一下IO流了
Java字节流和字符流,是时候总结一下IO流了 从接收输入值说起 字节流读取 字符流读取 Scanner 读取 什么是 IO 流 字节流和字符流 字节流 字节输入流 字节输出流 缓冲流的原理 字符流 ...
- Java学习总结:42(字节流和字符流)
字节流与字符流 上一节我们学习了文件操作类File,但是File类虽然可以操作文件,但是却不能操作文件的内容.如果要进行文件内容的操作,就必须依靠流的概念来完成.流在实际中分为输入流和输出流两种,输入 ...
- java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势
image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...
- java流类图结构_java I/O 流总结
一.java 流操作有关的类和接口: 类 说明 Fil ...
- java io流读写文件换行_java基础io流——OutputStream和InputStream的故事(温故知新)...
io流概述: IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中. IO流分类 按照数据流向 输入流 读入数据 输出流 写出 ...
- java io流 教程_Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:指的是从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列 ...
- 菜鸟学习笔记:Java提升篇5(IO流1——IO流的概念、字节流、字符流、缓冲流、转换流)
菜鸟学习笔记:Java IO流1--IO流的概念.字节流.字符流.缓冲流.转换流 IO流的原理及概念 节点流 字节流 文件读取 文件写出 文件拷贝 文件夹拷贝 字符流 文件读取 文件写出 处理流 缓冲 ...
- 一文读懂Java中File类、字节流、字符流、转换流
一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...
- 【Java基础】Java IO编程:输入输出流、内存流、打印流、缓冲流BufferedReader、扫描流Scanner、序列化与反序列化
文章目录 第11章.Java IO编程 11.1 文件操作类:File 11.2 字节流与字符流 字节输出流:OutputStream OutputStream类 FileOutputStream类 ...
- java中流的作用是什么意思_流的概念和作用
学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各 ...
最新文章
- 介绍几款浏览器兼容性测试工具
- nginx服务器的负载均衡和动静分离(未完)
- 真实!拖垮中小技术团队的 11 宗罪
- 如何利用百度API地图进行定位,非gps 定位
- python3 异步 asyncio 动态添加任务
- BeanUtils解决日期问题
- 计算机网络信息安全的含义,计算机网络信息安全内涵及其重要性
- linux 微信 开源,Makefile · 李光春/微信开发者工具 Linux版 - Gitee.com
- 《工具癖》Mac与Windows获取文件绝对路径的快捷键
- linux检查swap配置,Linux环境下swap配置方法
- 人工智能python小程序_Python:一个可以套路别人的python小程序
- make时候说找不到makefile_优秀自律的句子:找不到理由继续的时候,就找个理由重头来过吧...
- 怎么把竖列中的数相加python_使用python将另一列的列和总和内容分组
- 吴恩达深度学习——机器学习策略(一)
- JavaScript算术运算中前加加与后加加
- 进华为你必须了解的——华为精神
- summer 's wonderful so why not SMILE
- 沁春教你怎么在家制作拿铁咖啡!
- office安装教程
- CocosCreator微信小游戏之排行榜