第十章IO流的其他知识点.ppt
《第十章IO流的其他知识点.ppt》由会员分享,可在线阅读,更多相关《第十章IO流的其他知识点.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、IO流的其他知识点第十章第十章Scanner类简介数据操作流合并流合并流ZIP压缩输入/输出流简介ZipFile类ZipInputStream类回退流基本概念与Serializable接口实例操作实例操作-单人信息管理程序单人信息管理程序Scanner类简介1Scanner类简介类简介在JDK1.5之后Java提供了专门的输入数据类,此类不只可以完成输入数据操作,也可以方便地对输入数据进行验证。此类存放在java.util包中,其常用方法如表12-14所示。Scanner类的常用方法类的常用方法U提示:提示:Scanner类可以接收任意的类可以接收任意的输入流。输入流。在Scanner类中提供
2、了一个可以接收InputStream类型的构造方法,这就表示只要是字节输入流的子类都可以通过Scanner类进行方便的读取。2使用使用Scanner类输入数据(类输入数据(1)1实例操作一:实现基本的数据输入实例操作一:实现基本的数据输入最简单的数据输入直接使用Scanner类的next()方法即可。范例:输入数据范例:输入数据但是,如果在以上程序中输入了带有空格的内容,则只能取出空格之前的数据,代码如下所示:从运行结果中可以发现,空格后的数据没有了,造成这样的结果是因为Scanner将空格当作了一个分隔符,所以为了保证程序的正确,可以将分隔符号修改为n(回车)。范例:修改输入数据的分隔符范例
3、:修改输入数据的分隔符以上代码完成了字符串内容的输入,如果要输入以上代码完成了字符串内容的输入,如果要输入int或或float类型的数据,在类型的数据,在Scanner类中也有支类中也有支持,但是在输入之前最好先使用持,但是在输入之前最好先使用hasNextXxx()方法进行验证,代码如下所示。方法进行验证,代码如下所示。范例:输入范例:输入int、float2实例操作二:实现日期格式的数据输入实例操作二:实现日期格式的数据输入在Scanner类中没有提供专门的日期格式输入操作,所以,如果想得到一个日期类型的数据,则必须自己编写正则验证,并手工转换。以下代码演示了具体的操作。范例:得到日期范例
4、:得到日期3实例操作三:从文件中得到数据实例操作三:从文件中得到数据如果要从文件中取得数据,则直接将File类的实例传入到Scanner的构造方法中即可。例如,现在要显示d:test.txt中的内容,则可以采用以下的代码,此文件的内容如图所示。范例:读取test.txt文件从Scanner类的操作中可以发现,Scanner类有默认的分隔符,这样如果在文件中存在换行,则表示一次输入结束,所以本程序采用循环的方式读取,并在每次读完一行之后加入换行符,因为读取时内容需要反复修改,所以使用StringBuffer类以提升操作性能。数据操作流在IO包中,提供了两个与平台无关的数据操作流,分别为数据输出流
5、(DataOutputStream)和数据输入流(DataInputStream),通常数据输出流会按照一定的格式将数据输出,再通过数据输入流按照一定的格式将数据读入,这样可以方便地对数据进行处理。例如,有表所示的一组表示订单的数据。订单数据订单数据如果要将以上数据保存到文件中,就可以使用数据输出流将内容保存到文件,然后再使用数据输入流从文件中读取进来。1DataOutputStream类类DataOutputStream是OutputStream的子类,此类的定义如下:publicclassDataOutputStreamextendsFilterOutputStreamimplements
6、DataOutput此类继承自FilterOutputStream类(FilterOutputStream是OutputStream的子类),同时实现了DataOutput接口,在DataOutput接口定义了一系列的写入各种数据的方法。U提示:DataOutput接口的作用。DataOutput是数据的输出接口,其中定义了各种数据的输出操作方法,例如,在DataOutputStream类中的各种writeXxx()方法就是此接口定义的,但是在数据输出时一般都会直接使用DataOutputStream,只有在对象序列化时才有可能直接操作到此接口.DataOutputStream类的常用方法类的
7、常用方法以上程序的结果中每条数据之间使用n分隔,每条数据中的每个内容之间使用t分隔,如图所示。写入后就可以利用DataInputStream将内容读取进来。2DataInputStream类类DataInputStream是InputStream的子类,专门负责读取使用DataOutputStream输出的数据,此类的定义如下:publicclassDataInputStreamextendsFilterInputStreamimplementsDataInput此类继承自FilterInputStream类(FilterInputStream是InputStream的子类),同时实现Data
8、Input接口,在DataInput接口中定义了一系列读入各种数据的方法。U提示:提示:DataInput接口的作用。接口的作用。DataInput接口是读取数据的操作接口,与DataOutput接口提供的各种writerXxx()方法对应,在此接口中定义了一系列的readXxx()方法,这些方法在DataInputStream类中都有实现。一般在操作时不会直接使用到此接口,而主要使用DataInputStream类完成读取功能,只有在对象序列化时才有可能直接利用此接口读取数据.DataInputStream类的常用方法范例:从范例:从order.txt中读取数据中读取数据合并流合并流合并流的
9、主要功能是将两个文件的内容合并成一个文件,如图所示。如果要实现合并流,则必须使用SequenceInputStream类,此类的常用方法如表所示。SequenceInputStream类的常用方法类的常用方法范例:合并两个文件范例:合并两个文件以上程序在实例化SequenceInputStream类时指定了两个输入流,所以SequenceInputStream类在进行读取时实际上是从两个输入流中一起读取内容的。ZIP压缩输入/输出流简介压缩流压缩流在日常的使用中经常会使用到WinRAR或WinZIP等压缩文件,通过这些软件可以把一个很大的文件进行压缩以方便传输,如图12-20所示。在Java中
10、为了减少传输时的数据量也提供了专门的压缩流,可以将文件或文件夹压缩成ZIP、JAR、GZIP等文件形式。1ZIP压缩输入压缩输入/输出流简介输出流简介ZIP是一种较为常见的压缩形式,在Java中要实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream和ZipEntry几个类完成操作。U提示:提示:JAR及及GZIP文件格式的压缩输入、输出流。文件格式的压缩输入、输出流。在在JavaIO中,不仅可以实现中,不仅可以实现ZIP压缩格式的输入、输出,也可以实现压缩格式的输入、输出,也可以实现JAR及及GZIP
11、文件格式文件格式的压缩。的压缩。JAR压缩的支持类保存在java.util.jar包中,常用类有如下几个。JAR压缩输出流:JarOutputStream。JAR压缩输入流:JarInputStream。JAR文件:JARFile。JAR实体:JAREntry。GZIP是用于UNIX系统的文件压缩,在Linux中经常会使用到*.gz的文件,就是GZIP格式,GZIP压缩的支持类保存在java.util.zip包中,常用类有如下两个。GZIP压缩输出流:GZIPOutputStream。GZIP压缩输入流:GZIPInputStream。在每一个压缩文件中都会存在多个子文件,那么每一个子文件在J
12、ava中就使用ZipEntry表示.ZipEntry类的常用方法如表类的常用方法如表注意:压缩的输入/输出类定义在java.util.zip包中。压缩的输入/输出流也属于InputStream或OutputStream的子类,但是却没有定义在java.io包中,而是以一种工具类的形式提供的,在操作时还需要使用java.io包的支持。2ZipOutputStream类(类(1)如果要完成一个文件或文件夹的压缩,则要使用ZipOutputStream类。ZipOutputStream是OutputStream的子类,常用操作方法如表所示。现在假设在D盘中存在一个mldn.txt文件,文件内容如图1
13、2-22所示,要将其压缩成mldn.zip文件,具体代码如下。范例:压缩mldn.zip文件程序运行后,会在D盘上创建一个mldn.zip的压缩文件,文件打开如图12-23所示。上面是对一个文件进行压缩,但是在日常的开发中,往往需要对一个文件夹进行压缩,例如,现在在D盘中存在一个mldn的文件夹,如图12-24所示。ZipOutputStream类(类(2)从使用各种压缩软件的经验来看,如果现在要进行压缩,则在压缩后的文件中应该存在一个mldn文件夹。在文件夹中应该存放着各个压缩文件。所以,在实现时就应该列出文件夹中的全部内容,并把每一个内容设置成ZipEntry对象,保存到压缩文件中,执行流
14、程如图12-25所示。范例:压缩一个文件夹以上代码将mldn文件夹的内容压缩成mldndir.zip文件。程序首先判断给定的路径是否是文件夹,如果是文件夹,则将此文件夹中的内容使用listFiles()方法全部列出,此方法返回File的对象数组,然后将此File对象数组中的每个文件进行压缩,每次压缩时都要设置一个新的ZipEntry对象。程序执行完毕后,在D盘中会生成一个mldndir.zip的文件,文件打开如图所示。ZipFile类在Java中,每一个压缩文件都可以使用ZipFile表示,还可以使用ZipFile根据压缩后的文件名称找到每一个压缩文件中的ZipEntry并将其进行解压缩操作,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 IO 其他 知识点
限制150内