- 2
- 0
- 约5.07千字
- 约 44页
- 2019-07-17 发布于辽宁
- 举报
学习情境十四 I/O流 ;知识目标
理解什么是流,Java提供的主要的流有哪些;
理解顺序读写文件数据;
理解如何读取键盘数据,如何把数据输出到显示器;
理解字符的编码,理解字符在流和数据源之间的编码转换机制。
能力目标
能够正确使用字节流;
能够正确使用字符流;
能够正确使用缓冲流;
能够正确使用标准流。;情景再现与任务分析;图14-1 waiting_for_you.txt文本文件 ?;安排了五个任务;任务一 使用字节流;1.流的概念;连接数据源的流称为输入流
连接数据终点的流称为输出流
应用程序输入操作就是读取输入流中的数据,应用程序的输出操作就是往输出流中写数据。如图14-2。;Java语言提供了各种各样的流类,它们被组织在java.io包中。
各种流类的对象称为流。
流的实现细节非常复杂,但是在应用层面上,流的操作其实是很简单的。
流的操作主要有三个步骤:1、打开流;2、读取或写入数据;3、关闭流。
编写流的应用程序时,一般必须捕捉IOException异常。;利用流作为基本输出输入操作的主要原因是,让实现这些操作的程序独立于所涉及的设备,不必担心各种设备的具体工作机制,对于它们的管理均在幕后进行。
另外,用户的程序可以适用于各种输入输出设备,当改变输入输出设备时,不用改写程序的代码。
由于安全性的限制,Java Applet小程序不支持流的操作。;2.字节流;1)InputStream类;InputStream类中常用的方法有:
public abstract int read() throw IOException
读取一个字节数据,并返回读到的数据。读到的字节数据保存在int型变量的最低8位(最右边的字节)中,因此,返回值是0到255(0x00-0xff)之间的整数。如果返回-1,表示已经读到流的结尾。
public int read(byte[] b) throws IOException
从输入流中读取一定数量的字节,并将其存储到字节缓冲区数组b中。返回实际读到的字节数量。如果返回-1,则表示已经读到流的结尾处。每次能够读取的最大字节数量是b.length。
public void close() throws IOException
关闭输入流,并且释放与这个流相关的系统资源;2)OutputStream类;OutputStream类的层次结构如图14-4。
public abstract void write(int b) throws IOException
把b的最低位的一个字节写入到输???流中。因为b是一个int型数据,占4个字节,所以该int数据的其余3个字节数据都被抛弃。
public void write(byte[] b)throws IOException
将字节数组b中的数据写入到输出流中,写入的字节数量是b.length。
public void flush() throws IOException
刷新输出流并强制写出所有缓冲的输出字节。
public void close() throws IOException
关闭输出流并释放与此输出流有关的所有系统资源。该方法会首先调用flush()方法。;3)FileInputStream类;4)FileOutputStream;【例14-1】利用FileInputStream读取并显示文本文件的内容;程序说明:
程序中循环利用read()方法从字节流中读取字节数据,但是读取的字节保存在int型变量c中,而不是保存在char型的变量中。在文件的结尾处read()方法返回-1,循环结束。
从流中读出来的字节保存在int型变量(占32位)c的最低位的那个字节(最右边的8位)中,变量c的其余位以0填充。每个英文字符在流中刚好对应一个字节,该字节对应的int数值是该字符的ascii码值,与英文字符对应的Unicode值相等(英文字符的Unicode编码兼容ascii编码)。Java程序中的字符变量都是以Unicode编码存在的,所以应用程序能够正确地显示数据源文件中英文字符。
这个应用程序不能正确显示中文字符(输出部分的第一行),为什么?因为每个中文字符以GBK编码,占2个字节(16位),而字节流是以字节为单位读取流中的数据,单个的中文字符就被拆开了。;任务二 使用字符流;1.Reader类;Reader类的主要方法有:
public int read() throws IOException读取一个字符,并返回读到的数据。读到的字符数据保存在int型变量的最低16位(最右边的两个字节)中,因此,返回值是0到65535(0x00-0xffff)之间的整数。如果返回-1,表示已经读到流的结尾。
public int read(char[] cb
您可能关注的文档
最近下载
- GB51227-2017 立井钻井法施工及验收规范.pdf VIP
- 学校厨房设备售后服务方案.doc VIP
- 2025年长沙商贸旅游职业技术学院单招笔试职业技能考核试题库含答案解析(5套卷).docx VIP
- +Unit+4+History+and+Traditions+Reading+and+Thinking教学设计-2025-2026学年高中英语人教版(2019)必修第二册.docx
- 2025年政治中考试卷及答案.doc
- 成人动脉血气分析临床操作标准(2022版).pptx VIP
- 财会职位面试题及财务知识要点.docx VIP
- 成人重症肺炎专家共识指南课件详解.pdf
- 财会基础面试题及答案.doc VIP
- 八年级下册物理光学单元复习整合教学设计.docx VIP
原创力文档

文档评论(0)