- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第九章Java输入/输出;
9.1输入/输出的基本概念;
9.1.1输入与输出
Java的输入/输出是指相对于程序而言,程序与外部进行的数据输入和输出的操作。
程序中的输入与输出操作很常见,比如从键盘上读取数据、从文件读取数据、向文件写出数据等。通过输入与输出操作,可以将程序中产生的数据输出到外界,也可以从外界输入数据到程序中,Java语言使用流对象来实现这些输入/输出操作,流对象对数据的输入/输出操作屏蔽了具体的细节,让Java程序员更为方便地操纵数据流向。;
首先要明确输入/输出的方向:输入/输出一定是相对于程序而言的。
(1)相对于程序而言,数据是进来的,就称之为输入/读入(input/read)。
(2)相对于程序而言,数据是出去的,就称之为输出/写出(output/write)。
如图9-1所示,避免“读出”、“写入”这样含糊不清的说法。;
;
9.1.2流对象
1.输入流对象
可以将图9-1中“程序”左边的箭头视为输入流对象,有能力将数据输入到程序中的对象,就可以视为输入流对象。输入流对象对应数据源端,数据要从外部输入到程序中,就要说明数据源端是什么、在哪里,然后该输入流对象就采用相应的输入方法来将数据从数据源端输入到程序。;
2.输出流对象
图9-1中“程序”右边的箭头可以视为输出流对象,有能力将数据输出到程序外部的对象,就可以视为输出流对象。输出流对象对应接收端,数据要从程序输出到外部,就要说明接收端是什么、在哪里,然后输出流对象采用相应的输出方法将数据从程序输出到接收端。;
3.缓冲流对象
以文件的输入/输出为例,内存中的程序要和磁盘中的文件进行数据输入/输出,然而二者速度不匹配,磁盘文件的操作比内存的操作慢很多。显然,在这样的情况下每次输入/输出一个字节的效率是非常低的。为了提高数据的传输效率,通常使用缓冲流(BufferedStream)来提高数据的输入/输出效率。;
4.字节流/字符流
进行数据的输入/输出时,需要确定数据输入/输出的基本单位是什么。
(1)字节流:即每次输入/输出是按字节进行(1B?=?8bit)的。这种方式是最基本的输入/输出方式,能够对所有数据进行输入/输出(计算机中的所有数据是以0和1来存储的)。字节流又被称为二进制字节流(binarybytestream)或位流(bitsstream)。
(2)字符流:字符流的基本单位是字符char,是针对字符优化了的输入/输出。Java的char是采用2个字节的Unicode编码,所以字符流一次输入/输出2个字节,针对字符类型数据进行输入/输出较为方便且效率高。;
9.2输入/输出类层次结构;
;
在java.io包中有4个基本类,即InputStream、OutputStream及Reader、Writer类,它们分别处理字节流和字符流,根据数据源端和接收端的不同以及输入/输出方式的不同,它们下面还有若干子类。除了这4个基本类,另外还有File类以及随机访问文件类RandomAccessFile等。;
9.3面向字节的输入/输出;
我们以文件的输入/输出为例进行介绍,这也是最常见的输入/输出方式。对于文件,按字节的方式进行输入/输出,主要将使用下面两个类:
(1)?FileInputStream:面向字节的文件输入流。
(2)?FileOutputStream:面向字节的文件输出流。;
9.3.1面向字节的文件输入流
FileInputStream的主要方法如表9-1所示。;
read()方法有以下三个重载形式:
(1)将数据源端的1个字节输入到程序中。
(2)将数据源端的多个字节输入到程序中(与数据源端字节多少、程序接收字节的byte数组大小有关,一般情况下程序员控制二者相等)。
(3)将数据源端中指定的字节输入到程序中(指定偏移量和字节数)。;
如何构造FileInputStream类的对象呢?主要有两种方式:
(1)通过String形式的文件路径-文件名来构造FileInputStream类对象。
(2)通过一个File类对象来构造FileInputStream类对象(File类后面将详细讨论)。;;
程序结果:;;
9.3.2面向字节的文件输出流
FileOutputStream的主要方法如表9-2所示。
从表9-2可以看出,FileOutputStream的主要方法是write(),与FileInputStream类似,也是具有三个重载方法:
(1)将单个的字节写出到输出流对应的接收端:
write(int?b)
(2)将byte
您可能关注的文档
- 3dsMax+VRay+Photoshop室内效果图制作项目教程 第2版 课件全套 孙琪 1--4 ds Max实体建模应用 ---古香古色设计风格制作.pptx
- Java程序设计基础 课件 第1章 Java概述.pptx
- Java程序设计基础 课件 第2章 Java语言基础.pptx
- Java程序设计基础 课件 第3章 Java面向过程编程.pptx
- Java程序设计基础 课件 第4章 Java数组与字符串.pptx
- Java程序设计基础 课件 第5章 Java类与对象.pptx
- Java程序设计基础 课件 第6章 Java继承与抽象类.pptx
- Java程序设计基础 课件 第7章 多态与接口.pptx
- Java程序设计基础 课件 第8章 异常处理.pptx
- Java程序设计基础 课件 第10章 Java常用类介绍.pptx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 多发性硬化症免疫病理学.pptx VIP
- 教科版小学科学四年级上册 一天的食物 教案 教学设计.doc
- 人教统编版语文四年级上册 第三单元 双减分层作业设计 案例样例.docx
- 《中国文学理论批评史》第一章 先秦两汉文学理论批评60.pptx VIP
- 国家开放大学电大《计算机应用基础(本) 》 终结性考试试题答案(完整版).pptx
- 【西门子】SIMATIC HMI IPC477C _ HMI IPC477C PRO.pdf
- 2024年江苏省泰州市中考数学试题卷(含答案).docx
- 初中语文新部编版七年级上册第一单元核心素养教案(2024秋).doc
- 18.富饶的西沙群岛 ( 课件)(共17张PPT).ppt.pptx VIP
- 胃肠造影规范操作归纳.ppt
文档评论(0)