《输入与输出处理》PPT课件.ppt

上传人:sh****n 文档编号:12760348 上传时间:2020-05-22 格式:PPT 页数:31 大小:574.50KB
返回 下载 相关 举报
《输入与输出处理》PPT课件.ppt_第1页
第1页 / 共31页
《输入与输出处理》PPT课件.ppt_第2页
第2页 / 共31页
《输入与输出处理》PPT课件.ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
第8章输入与输出处理,中国矿大计算机学院杨东平jsxhbc,第8章输入与输出处理,本章讲述的主要内容流的层次结构;输入/输出流、数据输入/输出流、文件输入/输出流及它们的常用方法;随机访问流;对象流以及对象序列化;输入/输出中的异常处理。,流的层次结构,流:指从数据发送地到接收地的数据序列;Java将读取数据的对象称为输入流;能向其写入数据的对象称为输出流。输入输出类主要是在java.io包中定义,使用输入/出流必须在程序的开头加上语句:importjava.io.*;,流的层次结构(续),InputStream和OutputStream类结构,File类,File类与InputStream/OutputStream类同属于一个包,它不允许访问文件内容。File类主要用于命名文件、查询文件属性和处理文件目录。支持的主要文件属性包括:文件是否存在、是否可读、是否可写、是否是一个目录;不支持的文件属性包括:是否隐藏、是否为系统文件、是否文档案文件;,File类(续),File对象对应的路径可以是绝对路径,也可以是相对路径。比较好的方式是使用绝对路径,一般不使用相对路径。,File类(续),File类(续),例8-1:文件测试源程序运行,InputStream类和OutputStream类,它们都是抽象类,不能创建对象;必须通过其子类实现实例化。,InputStream类的常用方法,(1)publicabstractintread()功能:读取一个byte的数据,返回值是高位补0的int类型值。(2)publicintread(byteb)功能:读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的。(3)publicintread(byteb,intoff,intlen)功能:从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中。,InputStream类的常用方法(续),(4)publicintavailable()功能:返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起。(5)publiclongskip(longn)功能:忽略输入流中的n个字节,返回值是实际忽略的字节数。(6)publicintclose()功能:关闭输入流。,OutputStream类的常用方法,(1)publicvoidwrite(byteb)功能:将参数b中的字节写到输出流。(2)publicvoidwrite(byteb,intoff,intlen)功能:将参数b的从偏移量off开始的len个字节写到输出流。(3)publicabstractvoidwrite(intb)功能:先将int转换为byte类型,把低字节写入到输出流中。,OutputStream类的常用方法(续),(4)publicvoidflush()功能:将数据缓冲区中数据全部输出,并清空缓冲区。(5)publicvoidclose()功能:关闭输出流并释放与流相关的系统资源。注意以下两点:,OutputStream类的常用方法(续),注意以下两点:上述各方法都有可能引起异常。InputStream和OutputStream都是抽象类,不能创建这种类型的对象。,FileInputStream类,FileInputStream类是InputStream类的子类,用来处理以文件作为数据输入源的数据流。使用方法:,方式1:Filefin=newFile(d:/abc.txt);FileInputStreamin=newFileInputStream(fin);方式2:FileInputStreamin=newFileInputStream(d:/abc.txt);,FileInputStream类(续),FileInputStream类对象代表了一个实际存在的文件,否则将引起FileNotFoundException异常,也就是说,在Java程序中应当捕获异常,或用throws指明可能要产生的异常;例8-2源程序运行,FileOutputStream类,FileOutputStream类用来处理以文件作为数据输出目的数据流;创建一个文件流对象有两种方法:,方式1:Filef=newFile(d:/abc.txt);FileOutputStreamout=newFileOutputStream(f);方式2:FileOutputStreamout=newFileOutputStream(d:/abc.txt);,FileOutputStream类(续),例8-3:源程序运行,写文件时注意,在向文件中写数据时,若文件已经存在,则覆盖存在的文件;当流的读/写操作结束时,应调用close方法关闭流。,DataInputStream和DataOutputStream类,DataInputStream类对象可以读取各种类型的数据,而DataOutputStream类对象可以写各种类型的数据;创建这两类对象时,必须使新建立的对象指向构造函数中的参数对象。例如:,FileInputStreamin=newFileInputStream(d:/abc.txt);DataInputStreamdin=newDataInputStream(in);,DataInputStream类的常用方法,(1)publicfinalintskipBytes(longn)功能:跳过输入流中n个字节的数据。(2)publicfinalbytereadByte()功能:从输入流中读取1个字节的数据。(3)publicfinalcharreadChar()功能:从输入流中读取1字符的数据。(4)publicfinalintreadInt()功能:从输入流中读取4字节的数据。,DataInputStream类的常用方法(续),(5)publicfinallongreadLong()功能:从输入流中读取8字节的数据。(6)publicfinalStringreadLine()功能:从数据输入流中读取一行,并且包括换行符。(7)publicfinalvoidreadFully(byteb)功能:从数据输入流中读取b.length个字节的数据,读到b数组中。,DataOutputStream类的常用方法,(1)publicfinalintsize()功能:返回写到输出流中的字节数。(2)publicfinalvoidwriteBytes(Strings)功能:将字符串s中的字符写到输出流中,写时忽略高8位。(3)publicfinalvoidwriteChars(Strings)功能:将字符串s中的字符写到输出流中。(4)publicfinalvoidwriteInt(intv)功能:将参数v按4个字节的形式写到输出流中。,RandomAccessFile类,RandomAccessFile类实现了DataOutput和DataInput接口,可用来读写各种数据类型。两个构造函数:publicRandomAccessFile(Stringname,Stringmode)publicRandomAccessFile(Filefile,Stringmode)mode的取值只能为“r”,或“rw”。若是其它模式则抛出异常IllegalArgumentException。,RandomAccessFile类(续),例8-4:从键盘读入一个文件名,然后将指定的数据写入文件,并显示其内容。源程序运行,RandomAccessFile类(续),例8-5:采用命令行参数拷贝一个文件,然后输出该文件的内容。源程序运行,RandomAccessFile类(续),关于例8-5注意以下几点采用循环一次读取多个字节到缓冲区,然后将缓冲区中的字节写入文件,这是一种文件处理中很常用的方法;在showContents方法中,通过包装File对象生成一个随机文件对象:Filef=newFile(fileName);RandomAccessFilefin=newRandomAccessFile(f,rw);,对象流和对象序列化,ObjectOutputStream类的writeObject()方法可以写入对象,但基本类型的变量,必须通过DataOutput中的writeInt方法写入。例如:,ObjectOutputStreamout=newObjectOutputStream(FileOutputStream(t.tmp);out.writeInt(12345);out.writeObject(Today);/写对象out.writeObject(newDate()/写对象,对象序列化,将那些实现了Serializable接口的对象转换成一系列字节,并可在以后完全恢复原状。序列化机制能自动补偿操作系统间的差异。对象的序列化的方法:只要对象实现了Serializable接口即可。例8-6:源程序运行,IOException类的几个子类,(1)publicclassEOFException功能:当碰到输入尾时,抛出这种类型的异常。(2)publicclassFileNotFoundException功能:当文件找不到时,构造函数抛出这种类型的异常。(3)publicclassInterruptedIOException功能:当I/O操作被中断时,抛出这种类型的异常。(4)publicclassUTFDataFormatException功能:当在读的字符串中有UTF语法格式错误时,由DataInputStream.readUTF()方法抛出。,应用程序综合举例,例8-7(习题4)编写一个程序,采用命令行参数输入一个文本文件名和一个字符串,在这个文件内查找这个字符串。要求输出具有该字符串的所有文本行。源程序命令行运行例8-8(习题5)编写一个程序,比较两个文件是否相同。源程序命令行运行,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!