java程序设计项目教程教学课件作者林邓伟项目7

上传人:E**** 文档编号:102545276 上传时间:2019-10-03 格式:PPT 页数:81 大小:1.29MB
返回 下载 相关 举报
java程序设计项目教程教学课件作者林邓伟项目7_第1页
第1页 / 共81页
java程序设计项目教程教学课件作者林邓伟项目7_第2页
第2页 / 共81页
java程序设计项目教程教学课件作者林邓伟项目7_第3页
第3页 / 共81页
java程序设计项目教程教学课件作者林邓伟项目7_第4页
第4页 / 共81页
java程序设计项目教程教学课件作者林邓伟项目7_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《java程序设计项目教程教学课件作者林邓伟项目7》由会员分享,可在线阅读,更多相关《java程序设计项目教程教学课件作者林邓伟项目7(81页珍藏版)》请在金锄头文库上搜索。

1、项目7 输入与输出,7.1 项目概述 7.2 项目目的 7.3 项目支撑知识 7.4 项目实施 7.5 项目总结 7.6 扩展演练,7.1 项目概述,本项目为Java输入输出的实现。,返回,7.2 项目目的,.掌握输入输出的处理、字符流的处理。 .理解字节流和字符流,文件处理。 .理解文件的概念。 .正确使用各种输入输出流。,返回,7.3 项目支撑知识,计算机系统使用的所有数据从计算机的输入端向输出端流动,这种数据流动的想法导致了术语“流”(streams)的产生。流是指在计算机的输入输出之间运动的数据序列。按流的运动方向来分,流可分为输入流(input streams)和输出流(output

2、 streams)。输入流(input streams)代表从外设流人计算机的数据序列;输出流(output streams)表从计算机流向外设的数据序列。流式输入输出的特点是:每个数据都必须等待排在它前面的数据读入或送出之后,才能被读写,每次读写操作处理的都是序列中剩余的未读写数据中的第一个,而不是随意选择输入输出的位置。,下一页,返回,7.3 项目支撑知识,计算机使用的外部设备有:磁盘、磁带、键盘、屏幕、显示器等,不可能针对每一种设备都使用一种专用的输入输出方法,需要使用一种称为“流”的逻辑设备来屏蔽这些设备的差异性。在行为上,所有的流都是类似的。 计算机的设备也可看成一个文件。打开文件,

3、就建立流与特定文件的联系,可以在程序和文件之间交换信息;关闭一个流,会使其相关缓冲区中所有内容写到外部设备。在程序终止前,应该关闭所有打开的流。程序、流、外部设备之间的关系如图7-1所示。,上一页,下一页,返回,7.3 项目支撑知识,7.3.1项目支撑知识1流 在Java程序中,流(stream)是程序内数据流动的路径,流中的数据可以是未加工的原始二进制数据,也可以是按一定编码处理后符合某种格式规定的特定数据,如字符数据,所以Java中的流有字节流和字符流之分。字节流(bytestream)为处理字节的输入和输出提供了方便的方法。在最底层,所有的输入输出都是字节形式的。例如,使用字节流读取或书

4、写二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。,上一页,下一页,返回,7.3 项目支撑知识,1.字节流 字节流处理是以字节为单位进行的数据读写操作。InputStream和outputStream是处理字节流的两个基本类,Java.io包中的所有以InputStream和outputS tream结尾的类都是处理字节流的类。从InputStream和outputStream派生出来的一系列类,这类流以字节(by te)为基本处理单位,如下。,上一页,下一页,返回,7.3 项目支撑知识,(1)InputStream、OutputStream。 (2)F

5、ileInputStream、FileOutputStream。 (3)PipedInputStream、PipedOutputStream。 (4)ByteArray InputStream、ByteArray outptS tream。 (5)FilterIputStream、FilterOutputStream。 (6)DataInputStream、DataOutputStream。 (7)BufferedInputStream、BufferedOutputS tream。,上一页,下一页,返回,7.3 项目支撑知识,2.字符流 字符流处理以字符为单位进行的读写操作。字符流处理的信息是

6、基于文本的信息。字符流支持Unicode中的任何字符,Reader和Writer是处理字符流的两个基本类。Java.10包中所有以Reader和Writer结尾的类都是处理字符流的类。从Reader和Writer派生出的一系列类,以16位的Unicode码表示的字符为基本处理单位,这类流如下: (1)Reader、Writer。 (2)InputSltreamReader、OutputStreamWriter。,上一页,下一页,返回,7.3 项目支撑知识,(3)FileReader、FileWriter。 (4)CharArrayReader、CharArrayWriter。 (5)Piped

7、Reader、PipedWriter。 (6)FilterReader、FilterWriter。 (7)BufferedReader、BufferedWriter 。 (8)StringReader、StringWriter。,上一页,下一页,返回,7.3 项目支撑知识,7.3.2项目支撑知识2字节流 处理字符或字符串时一般应使用字符流类,处理字节或二进制时一般应使用字节流类。InputStream类和OutputS tream类为字节流设计。Reader类和Writer类则为字符流设计。 1.InputStream类和OutputStream类 在字节流中,输入流用InputStream类

8、完成,输出流用OutputStream类完成。,上一页,下一页,返回,7.3 项目支撑知识,InputStream和OutputStream是两个抽象类,还不能表明具体对应哪种I/0设备。它们下面有许多子类,包括网络、管道、内存、文件等具体的I/0设备,如FilelnputStr eam类对应的就是文件输人流。作为抽象类,它不能直接生成对象,只有通过全部实现其接口的子类来生成程序中所需要的对象,而且InputStream类的子类一般都会将InputStream中定义的基本方法重写,以提高效率或为了适应特殊流的需要。,上一页,下一页,返回,7.3 项目支撑知识,(1)InputSltream类。

9、 InputStream类中定义的所有方法在遇到错误时都会引发IOException异常。InputStream类中的方法有: public abstract int read()throws IOException 读取一个字节,返回值为所读的字节的整型表示。如果为-1,则表明文件结束。 public int read(byteb)throws IOException 读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际读取的字节的数量。,上一页,下一页,返回,7.3 项目支撑知识, public int read(byteb,int off, int len)thr

10、ows IOException 读取len个字节,放置到下标off开始的字节数组b中,返回值为实际读取的字节的数量。 .public int available()throws IOException 返回值为流中尚未读取的字节的数量。此方法应该由子类重写。 5 public long skip(long n) throws IOException 读指针跳过n个字节不读,返回值为实际跳过的字节数量。,上一页,下一页,返回,7.3 项目支撑知识,) public void close()throws IOException 关闭输入流,释放与该流关联的所有系统资源。InputStream的cl

11、oss方法不执行任何操作。 public void mark(int readlimit) 记录当前读指针所在位置,readlimit表示读指针,读出readlimit个字节后所标记的指针位置才失效。 .public void reset()throws IOException 把读指针重新指向用mark方法所记录的位置。,上一页,下一页,返回,7.3 项目支撑知识, public Boolean markSupported() 当前的流是否支持读指针的记录功能。 每个方法的使用,详见Java API。 (2)OutputStream类。 OutputStream是一个定义厂了输出流的抽象类,

12、这个类中的所有方法的返回值均为void,并在遇到错误时引发IOException异常。OutputStream类中的方法有以下几种。,上一页,下一页,返回,7.3 项目支撑知识, public abstract void write(int b) throws IOException。 将指定的字节写入此输出流。Write的常规协定是:向输出流写入一个字节。要写入的字节是参数b的8个低位,b的24个高位将被忽略。OutputStream的子类必须提供此方法的实现。 public void write(byteb)throws IOException,上一页,下一页,返回,7.3 项目支撑知识,

13、将b.length个字节从指定的字节数组写入此输出流。Write(b)的常规协定是:应该与调用Write( b , 0 , b.length)的效果完全相同。 public void write(byte)b,int off, int len)Throws IOException,上一页,下一页,返回,7.3 项目支撑知识,将指定字节数组中从偏移量off开始的len个字节写入此输出流。Write(b,off, len)的常规协定是:将数组b中的某些字节按顺序写入输出流;元素b off是此操作写入的第一个字节,b off + t 是此操作写入的最后一个字节。OutputStream的write方

14、法对每个要写出的字节调用一个参数的write方法。建议子类重写此方法并提供更有效的实现。如果b为null,则抛出NullPointerException。如果off为负,或len为负,或者off + len大于数组b的长度,则抛出IndexOutOfBoundsException。,上一页,下一页,返回,7.3 项目支撑知识,.public void flush()throws IOException 刷新此输出流并强制写出所有缓冲的输出字节。flush的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。如果此流的预期目标是由基础操

15、作系统提供的一个抽象(如一个文件),则刷新此流只能保证将以前写入到流的字节传递给操作系统进行写入,但不保证能将这些字节实际写入到物理设备(如磁盘驭动器)。,上一页,下一页,返回,7.3 项目支撑知识,5 public void close()Throws IOException 流操作完毕后必须关闭 2.文件流FilelnputStream/FileOutputStream I/0处理中,最常见的是对文件的操作,Java.io包中有关文件处理的类有:File、ilelnputStream、FileOutputStream、RamdomAcccssFile和FileDescriptor。 (1)

16、File类。 File类提供了一种与机器无关的方式来描述一个文件对象的属性。下面介绍File类和它中的一些主要方法。 文件或目录的生成。,上一页,下一页,返回,7.3 项目支撑知识,public File ( String pathname):通过将给定路径名字符串转换成抽象路径名来创建一个新File实例。如果给定字符串是空字符串,则结果是空的抽象路径名。 public File ( String parent, String child):根据p arent路径名字符串和child路径名字符串创建一个新File实例。如果parent为null,则创建一个新的File实例,这与调用单参数File方法,以给定child路径名字符串作为参数的效果一样。否则,parent路径名字符串用于表示目录,而child路径名符串用于表示目录或文件。,上一页,下一页,返回,7.3 项目支撑知识,如果child路径名字符串是绝对路径名,则用与系统有关的方式将它转换成一个相对路径名。如果parent是空字符串,则新的File实例是通过将child转换成抽象路径名并根

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

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

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