第10章输入输出流与文件处理

上传人:今*** 文档编号:107421656 上传时间:2019-10-19 格式:PPT 页数:76 大小:953.50KB
返回 下载 相关 举报
第10章输入输出流与文件处理_第1页
第1页 / 共76页
第10章输入输出流与文件处理_第2页
第2页 / 共76页
第10章输入输出流与文件处理_第3页
第3页 / 共76页
第10章输入输出流与文件处理_第4页
第4页 / 共76页
第10章输入输出流与文件处理_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《第10章输入输出流与文件处理》由会员分享,可在线阅读,更多相关《第10章输入输出流与文件处理(76页珍藏版)》请在金锄头文库上搜索。

1、Java面向对象 程序设计基础教程,河南大学计算机与信息工程学院,目录,第1章 Java语言概述 第2章 Java基本语法规则 第3章 Java中的面向对象技术 第4章 Java基本结构程序 第5章 Java基本类 第6章 图形用户界面 第7章 异常处理 第8章 多线程 第9章 Java Applet程序 第10章 输入输出流与文件处理 第11章 Java网络编程 第12章 数据库应用,3,第10章 输入输出流与文件处理,10.1 输入输出流概述 10.2 字节流类 10.3 字符流类 10.4 文件处理,4,10.1 输入输出流概述,1.什么是流,流(stream): 指一组有顺序的、有起点

2、和终点的字节集合,是对数据传输的总称或抽象,即数据在两个对象之间的传输称为流。,5,10.1 输入输出流概述,2.流的分类,数据输入:数据由外部输入设备流向内存。输入流 数据输出:数据由内存流向外部输出设备。输出流,按数据的传输方向,分为输入流和输出流。 按处理的单位,分为字节流和字符流。 按照功能的不同,分为节点流和过滤流。,流的基本操作:读操作和写操作。 读操作:从流中取得数据的操作。对输入流只能进行读操作 写操作:向流中添加数据的操作。对输出流只能进行写操作 一个流只能进行读或写中一种操作,不能同时读和写。,6,10.1 输入输出流概述,2.流的分类,字节流:一个字节序列,它与外部设备中

3、的字节存在着一一对应的关系,即不存在字符的转换,被读写字节的个数与外部设备中的字节个数是相同的。,字符流:一个字符序列,可按需要进行某些字符的转换,在被读写字符和外部设备中的字符之间不存在一一对应的关系,被读写字符的个数可能与外部设备中的字符个数不一样。,7,10.1 输入输出流概述,对数据流进行读/写操作的最小单位是字节,传输效率低下。 缓冲流(buffered stream)技术:为提高传输速率,为一个流配有一个缓冲区,一个缓冲区就是专门用于传送数据的一块内存。,3.缓冲流技术,写入数据:系统将数据发送到缓冲区,缓冲区满时,系统将数据全部发送到相应的外部设备。 读取数据:系统从缓冲区中读取

4、数据,缓冲区空时,系统从相关外部设备自动读取数据,并读取尽可能多的数据填满缓冲区。 配备缓冲区的流称为缓冲流,缓冲流提高了内存与外部设备之间的数据传输效率。,8,10.1 输入输出流概述,设计流的目的,是为了使数据传输独立于相关设备。 程序中需要根据待传输数据的不同特性而使用不同的流,数据传输给指定设备后的操作由系统执行设备驱动程序完成,这样,程序中不需要关注设备实现细节,使得一个源程序能够用于多种输入/输出设备,从而增强了程序的可重用性。,4.流的作用,流式输入输出的最大特点:数据的获取和发送是沿着数据序列顺序进行,每一个数据都必须等待排在它前面的数据读入或送出之后才能被读写,每次读写操作处

5、理的都是序列中剩余未读写数据中的第一个,而不能随意选择输入输出的位置。,9,10.1 输入输出流概述,5.java.io包中的类 1) 字节流InputStream和OutputStream类,10,10.1 输入输出流概述,5.java.io包中的类 1) 字节流InputStream和OutputStream类,11,10.1 输入输出流概述,5.java.io包中的类 2) 字符流Reader和Writer类,12,10.1 输入输出流概述,5.java.io包中的类 2) 字符流Reader和Writer类,13,10.2.1 字节输入输出流 10.2.2 文件字节输入输出流类 10.

6、2.3 过滤输入输出流 10.2.4 对象输入输出流类,10.2 字节流类,14,10.2 字节流类,字节流:每次读写8位二进制数,由于它只能将数据以二进制的原始方式读写,而不能分解、重组和理解这些数据,所以可以使之变换、恢复到原来的有意义的状态,因此字节流又被称为二进制字节流或位流。,InputStream和OutputStream类:抽象类,定义了字节流的基本输入输出操作方法。由于不能创建它们的实例对象,实际使用的是它们的子类,每个子类实现一种特定的字节流输入或输出操作。,15,10.2.1 字节输入输出流,1.InputStream类 public abstract int read()

7、 /返回读取的一个字节 public int read(byte b) /读取若干字节到指定缓冲区b, 返回实际读取的字节数;如果b的长度是0,则返回0;如果输入流结束,则返回-1。 public int read(byte b, int off, int len) /从输入流中当前位置连续读入len个字节,从数组b的第off+1个元素位置处开始存放,同时返回所读到的字节数。 public long skip(long n) /使位置指针从当前位置向后跳过n个字节 public void close() throw IOException /关闭输入流,空方法,16,10.2.1 字节输入输出

8、流,1.InputStream类,17,10.2.1 字节输入输出流,2.OutputStream类 public abstract void write(int b) /写入一个字节 public void write(byte b) /将缓冲区b中内容写入输出流 public void write(byte b, int off, int len) /将字节数组b中第off+1个元素开始的len个数据,顺序地写入到输出流 public void flush() /强制清空缓冲区并执行向外设写操作 public void close() /关闭输出流,空方法,18,10.2.1 字节输入输出

9、流,2.OutputStream类,19,10.2.1 字节输入输出流,3.标准输入输出 标准输入:从键盘等外部输入设备中获得数据。 标准输出:向显示器或打印机等外部设备发送数据。,java.lang.System类中声明了3个常量in、out和err,用于实现标准输入输出功能。 public final static InputStream in; public final static PrintStream out; public final static PrintStream err;,20,10.2.1 字节输入输出流,3.标准输入输出,System.in: BufferedInp

10、utStream类的对象。 作用:当程序需要从键盘上读入数据时,只需调用它的read()方法。 read()方法:从键盘缓冲区读入一个字节的二进制数据,返回以此字节为低位字节,高位字节为0的整型数据。,System.out: 打印输出流PrintStream类的对象,PrintStream是过滤输出流类FilterOutStream的一个子类。 作用:定义了向屏幕输送不同类型数据的方法print()和 println()。,21,10.2.1 字节输入输出流,3.标准输入输出,System.err: 用于为用户显示错误信息,也是由PrintStream类派生的错误流。 作用:使用方法print

11、()和println()将信息输出到err流并显示在屏幕或其他指定设备上,以方便用户使用和调试程序。,System.out与System.err的区别: err会立即显示指定的(错误)信息让用户知道,即使你指定 程序将结果重新定位到文件,err输出串的信息也不会被重新定 位,而仍会显示在显示设备上。,22,10.2.1 字节输入输出流,3.标准输入输出,【例10.1】Java标准输入输出。StdIO.java 演示如何从键盘读取数据的标准输入操作,以及向显示器 输出数据的标准输出操作。,23,图 标准输入过程,3.标准输入输出,24,图 标准输出过程,3.标准输入输出,25,10.2.2 文件

12、字节输入输出流类,文件输入/输出流类:主要负责完成对本地磁盘文件的顺序输入与输出操作。 FileInputStream类:其对象表示一个文件字节输入流,从中可读取一个字节或一批字节。 在生成该类对象时,若指定的文件找不到,则抛出FileNotFoundException异常,该异常必须捕获或声明抛出。,FileOutputStream类:其对象表示一个文件字节输出流,可向流中写入一个字节或一批字节。 在生成该类对象时,若指定的文件不存在,则创建一个新的文件,若已存在,则清除原文件的内容。在进行文件的读写操作时IOException异常,该异常必须捕获或声明抛出。,26,10.2.2 文件字节输

13、入输出流类,1.FileInputStream类 public class FileInputStream extends InputStream /继承并覆盖了父类InputStream中的read()、close()等方法。 public FileInputStream(File file) throws FileNotFoundException /用指定的文件类File对象file创建流对象 public FileInputStream(String name) throws FileNotFoundException /用name指定文件名创建流对象,27,10.2.2 文件字节输入

14、输出流类,2.FileOutputStream类 public class FileOutputStream extends OutputStream public FileOutputStream(File file) throws FileNotFoundException public FileOutputStream(String name) throws FileNotFoundException /构造方法为指定文件创建文件字节输出流对象。若指定文件不存在,则创建一个新文件写入数据。如果指定文件是为目录,或无法创建新文件时,抛出FileNotFoundException。,28,1

15、0.2.2 文件字节输入输出流类,2.FileOutputStream类 public FileOutputStream(String name, boolean append) throws FileNotFoundException /append参数指定文件是否为添加的写入方式;当取值为true时,数据添加在原文件的末尾;取值为false时,为重写方式,数据从原文件开始处写入,默认值为false.,【例10.2】使用文件字节输入输出流实现文件的输入输出操作。 演示在程序中创建一个文件,写入一组字节数据,然后再读该文件并将文件内容显示在屏幕上。 FileStream.java,29,10.

16、2.3 过滤输入输出流,过滤输入流类FilterInputStream: 实现了在数据写操作的同时进行数据处理,是InputStream 的直接子类。为抽象类,派生出DataInputStream等子类 过滤输出流类FilterOutputStream: 实现了在数据读操作的同时进行数据处理,是OutputStream 的直接子类。为抽象类,派生出DataOutputStream等子类。,过滤输入输出流类的主要特点:建立在基本输入输出流之上,并在输入输出数据的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换。 创建过滤输入输出流时,应该将其所连接的基本输入输出流作为参数传递给过滤流的构造方法。,30,10.2.3 过滤输入输出流,数据字节输入流类DataInputStream和数据字节输出流类DataOutputStream: 可以将字节数据自动转换成基本数据类型,进行读写操作。 例如:二进制文件中存放有100个浮点数值,读取时,自然希望按double为基本单位进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号