- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第九章流和文件1.流的基本概念和数据类型主讲人:_________
流的基本概念流是动态的,文件是静态的。在Java中,流是字节序列的一个抽象概念;流提供一种从输入、输出设备中读取、写入的方法。文件通常是流操作起点或终点。一般情况下文件是流的终点,经过处理、生成的数据,如果需要永久保存的数据,通过流的形式写入存储设备,以文件形态保存下来;文件也是大部分流的起点,对于大多数处理而言,往往需要读取大量的数据,这些数据可能分布在网络的不同存储中,通过流进行输入;文件IO操作只是“流”一种形式。除了文件流,还有网络流、内存流、设备流等多种形态的流;数据流需要顺序操作。写入数据流的数据,必须按照先后顺序逐段写入;需要读取其中一段,也是需要从头顺序读取;“流”是数据传输的有序字节序列。“流”与文件的区别:
流的基本概念程序空间缓冲区外部设备程序进行I/O操作的一般过程由于外部设备的读、写速度远低于内存的读写速度、以及CPU的运算速度,如果直接把输出数据直接写入到外部设备中(如磁盘中),会导致CPU需要大量等待时间,使得运行效率降低;同样,如果直接把磁盘数据由CPU直接读取,也会导致CPU效率降低。因此,在进行I/O操作过程中,通常用缓冲区进行过渡。如果要把数据输出到外部设备,首先输出到缓冲区,等缓冲区写满,再一次性把缓冲区的数据写到磁盘上。如果要从磁盘读取数据,预先从磁盘把数据读入到缓冲区中,然后,程序再从缓冲区读取、处理。在输入、输出流中,也是这种处理方式,以提高CPU运行效率。在Java中,有的类使用缓冲区、有的类没有使用缓冲区,程序员也可以使用自己的包装类,使用缓冲区以提高程序运行效率。
流的数据类型InputStream类程序能够从流中连续读取数据的对象叫做输入流类(InputStream)。在Java开发语言中,InputStream类描述所有输入流的抽象概念。InputStream类没有涉及到具体的输入设施,只用于描述输入流的一些共性,只给出了各种输入流类在读取数据的一些通用方法,包括网络、管道、内存、文件等具体的输入流类,都是InputStream类的子类。OutputStream类在程序中能够连续输出字节的对象叫做输出流。在Java程序中,OutputStream描述类是输出流的抽象概念,没有对应具体的流设备。与InputStream类一样,也只是描述输出流类的一些共性的功能方法。输入流输出流
第九章流和文件2.字节流的输入和输出主讲人:_________
字节流的概念字节流的概念介绍在程序的开发中,经常需要处理设备之间的数据传输,而计算机中,无论是文本、图片、音频还是视频,所有文件都是以二进制(字节)形式存在的。对于字节的输入输出,I/O流提供了一系列的流,统称为字节流,字节流是程序中最常用的流,根据数据的传输方向可将其分为字节输入流和字节输出流。
字节流的概念抽象类InputStream和OutputStreamJDK提供了两个抽象类InputStream和OutputStream,它们是字节流的顶级父类,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。为了方便理解,可以把InputStream和OutputStream比作两根“水管”,具体如下:
字节流的概念抽象类InputStream和OutputStream在左图中,InputStream被看成一个输入管道,OutputStream被看成一个输出管道,数据通过InputStream从源设备输入到程序,通过OutputStream从程序输出到目标设备,从而实现数据的传输。由此可见,I/O流中的输入输出都是相对于程序而言的。
字节流的概念InputStream类的常用方法InputStream类提供了一系列与读数据相关的方法。具体如下表所示。方法声明功能描述intread()从输入流读取一个8位的字节,把它转换为0~255之间的整数,并返回这一整数intread(byte[]b)从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取字节的数目intread(byte[]b,intoff,intlen)从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始索引,len表示读取的字节数目voidclose()关闭此输入流并释放与该流关联的所有系统资源
字节流的概念InputStream体系结构InputStream类虽然提供了一系列和读数据有关的方法,但是InputStream类是抽象类,不能被实例化,因此针对不同的功能,InputStream类提供了不同的子类,
您可能关注的文档
- 《跨平台程序设计语言》课件——第 3 章 类和对象.pptx
- 《跨平台程序设计语言》课件——第 4 章 类的封装性、继承性、多态性及接口.pptx
- 《跨平台程序设计语言》课件——第1章 Java语言概述.pptx
- 《跨平台程序设计语言》课件——第2章 Java 基础语法.pptx
- 《跨平台程序设计语言》课件——第5章 数组、字符串和枚举.pptx
- 《跨平台程序设计语言》课件——第6章 Java常用类及接口.pptx
- 《跨平台程序设计语言》课件——第7章 异常处理.pptx
- 《跨平台程序设计语言》课件——第8章 泛型与集合.pptx
- 《跨平台程序设计语言》课件——第10章 多线程.pptx
- 《人工智能应用开发》课件——第1章课程介绍+绪论.pptx
- 反假币课件完整版本.pptx
- 《简单几何体的表面积与体积》典型例题课件.pptx
- 9.5 第3课时 用完全平方公式分解因式 课件.pptx
- B卷—2022年中考地理考前高分突破卷(四川成都专用)(原卷版).doc
- 精品试卷:甘肃省金昌市金川总校第五中学2020-2021学年七年级下学期期末历史试题(解析版).docx
- 【高三暑假自学课】第09讲 特殊句式和情景交际 解析版.docx
- 《生活中的变量关系》精品课件.pptx
- 江苏省普通高中高二年级2022—2023年学业水平合格性考试历史模拟卷04(学生版).docx
- 期末检测:河北省保定市唐县2020-2021学年八年级上学期期末历史试题(解析版).doc
- 名师课件:3.3.3 升幂排列与降幂排列 (1).ppt
文档评论(0)