- 1、本文档共130页,可阅读全部内容。
- 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
您可能关注的文档
- 《中式烹调工艺》--烹饪基础技能 课件 01中式烹调概述、02烹调刀工基础.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 03鲜活原料的初加工、04原料剔骨分档出肉技术.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 05干货原料的涨发、06配菜技术.pptx
- 《中式烹调工艺》--烹饪基础技能 课件 07勺工技术、08火候的掌握与应用、09菜肴的盛装与美化.pptx
- 《中式烹调工艺》--烹饪基础技能 课件全套 01中式烹调概述 ---09菜肴的盛装与美化.pptx
- Java程序设计基础 课件 (罗刚)第1章 Java概述、第2章 Java语言基础.pptx
- Java程序设计基础 课件 (罗刚)第3章 Java面向过程编程、第4章 Java数组与字符串.pptx
- Java程序设计基础 课件 (罗刚)第5章 Java类与对象、第6章 Java继承与抽象类.pptx
- Java程序设计基础 课件 (罗刚)第7章 多态与接口、第8章 异常处理.pptx
- Java程序设计基础 课件 (罗刚)第11章 图形界面设计、第12章 事件处理.pptx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
最近下载
- 6.2交友的智慧 课件-2024-2025学年道德与法治七年级上册(统编版2024).pptx VIP
- (完整版)高中生物知识点总结(完整版).pdf
- 浙江省上虞实验中学2020-2021学年八年级上学期第一次月考数学试题(含解析).doc
- 环保涂料建设项目环境影响报告书.pdf
- 重难点专题02 函数值域与最值十四大题型汇总(解析版).docx VIP
- 6.1友谊的真谛 课件 2024-2025学年七年级道德与法治上册 统编版2024.pptx VIP
- 《公司治理学》(李维安第四版)教学全套课件.pptx
- 迷雾水珠 高清钢琴谱五线谱.pdf
- 湖南省长沙市长郡2024-2025学年高三上学期月考试卷(一)+英语试卷(含解析,含听力原文无音频).pdf VIP
- 6.1 友谊的真谛 【课件】2024-2025学年七年级上册道德与法治 统编版2024).pptx VIP
文档评论(0)