io——流类

一、 流的概念

Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备连接。尽管与它们连接的物理设备都不尽相同,但是所有流的行为具有同样的方式。因此,同样的输入/输出类和方法适用于所有类型的外部设备。这就意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。流是处理输入/输出的一个纯净的方法,例如它不需要代码理解键盘和网络的区别。Java中流的实现是在java.io包定义的层次结构内部的。

二、 输入/输出流概念

1、 输入输出时,数据在通信通道中流动。所谓“数据流(Stream)”指的是所有数据通信通道之中,数据的起点和终点。信息的通道就是一个数据流。只要是数据从一个地方“流”到另一个地方,这种数据流动的通道都可以称为数据流。

2、 输入/输出是相对于程序来说的。程序在使用数据时所扮演的角色有两个:一个是源,一个是目的地。若程序是数据流的源,即数据的提供者,这个数据流对于程序来说就是一个“输出数据流”(数据从程序流出)。若程序是数据流的终点,这个数据流对程序而言就是一个“输入数据流”(数据从程序外流向程序)。

三、 输入/输出类

1、 在java.io包中提供了60多个类(流)。
2、 从功能上分为两大类:输入流和输出流。
3、从流结构上可分为字节流(以字节为处理单位或称为面向字节)和字符流(以字符为处理单位或称为面向字符)。

四、字节流和字符流

1、 字节流的输入流和输出流基础是InputStream和OutputStream这两个抽象类,字节流的输入输出操作由这两个类的子类实现。字符流是Java1.1版后新增加的以字符为单位进行输入输出处理的流,字符流的输入输出基础是抽象类Reader和Writer。

2、 Java 2 之前只有字节流,Java 2 中定义了字符流。字节流(byte stream)为处理字节的输入和输出提供了方便。例如使用字节流读取或写入二进制数据。字符流(character stream)为字符的输入和输出提供了方便。它们采用了统一的编码标准,因而可以国际化。当然在某些场合,字符流比字节流更有效。

3、需要注意的是:在Java的最底层,所有的输入/输出都是字节形式的。基于字符的流只是为了处理字符提供方便有效的方法。

4、字节流类用于向字节流读写8位二进制的字节;字符流类用于想字符流读写16位二进制字符。

五、 流的分类

  • 第一种划分方法 两种基本的流是:输入流(Input Stream)和输出流(Output Stream)。可从中读出一系列字节的对象称为输入流。而能向其中写入一系列字节的对象称为输出流。

1、输入流
读数据的逻辑为

open a stream
while more information
read information
close the stream //一定要记住关闭流

2、输出流
写数据的逻辑为

open a stream 
while more information
write information
close the stream //一定要记住关闭流
  • 第二种划分方法
    节点流:从特定的地方读写的流类,例如:此案或一块内存区域。
    过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。
    image.png

上一篇:装饰模式(Decrator)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,742评论 19 139
  • tags:io categories:总结 date: 2017-03-28 22:49:50 不仅仅在JAVA领...
    行径行阅读 2,306评论 0 3
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 3,141评论 3 10
  • 2017年9月28日,如是家人李建英,第45天种种子日志 发心:我今不是为了我个人而闻思修行,而是为了六道轮回一切...
    若嘉阅读 305评论 3 5
  • 1999年7月,一百名前往哥伦比亚朝拜的圣教徒在阿尔里斯山山顶神秘失踪。 据说那些人都去往了无限神秘的异次元,那么...
    格斯墨阅读 942评论 13 8

友情链接更多精彩内容