第5章-输入输出流和异常-面向对象程序设计-Java-教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第5章-输入输出流和异常-面向对象程序设计-Java-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 异常 面向 对象 程序设计 Java 教学 课件
- 资源描述:
-
1、12 问题的提出与分析 流的概念 字节流的分类及其常用方法 字符流的分类及其常用方法 异常的概念 Java的异常处理机制 用户异常的定义和实现3 问题的提出ASCII编码Unicode编码Unicode编码与字符之间的转换6 用UML图描述的类之间的关系7 最终程序的运行界面8 5.2.1 流的概念将输入输出过程抽象为数据流数据源,数据宿特性:顺序性:先从数据源流出的数据一定比后流出的数据先到达数据宿 单向性:数据只能从数据源流向数据宿 唯一性:数据流必须而且只能和一个数据源与一个数据宿相连 9 5.2.2 输入输出流类层次InputStreamInputStreamStringBufferI
2、nputStreamStringBufferInputStreamSequenceInputStreamSequenceInputStreamByteArrayInputStreamByteArrayInputStreamFilterInputStreamFilterInputStreamPipedInputStreamPipedInputStreamFileInputStreamFileInputStreamProgressMonitorInputStreamProgressMonitorInputStreamInflateInputStreamInflateInputStreamDiges
3、tInputStreamDigestInputStreamCipherInputStreamCipherInputStreamCheckedInputStreamCheckedInputStreamPushbackInputStreamPushbackInputStreamBufferedInputStreamBufferedInputStreamDataInputStreamDataInputStreamLineNumberInputStreamLineNumberInputStream字节输入流类的层次关系字节输入流类的层次关系10 5.2.2 输入输出流类层次字节输出流类的层次关系字节输
4、出流类的层次关系OutputStreamOutputStreamByteArrayOutputStreamByteArrayOutputStreamFilterOutputStreamFilterOutputStreamPipedOutputStreamPipedOutputStreamFileOutputStreamFileOutputStreamPrintStreamPrintStreamBufferedOutputStreamBufferedOutputStreamDataOutputStreamDataOutputStream11 5.2.2 输入输出流类层次字符输入流类的层次关系字符
5、输入流类的层次关系PushbackReaderPushbackReaderFineReaderFineReaderLineNumberReaderLineNumberReaderReaderReaderStringReaderStringReaderFilterReaderFilterReaderCharArrayReaderCharArrayReaderBufferedReaderBufferedReaderInputStreamReaderInputStreamReaderPipedReaderPipedReader12 5.2.2 输入输出流类层次字符输出流类的层次关系字符输出流类的层次
6、关系FineWriterFineWriterWriterWriterStringWriterStringWriterFilterWriterFilterWriterCharArrayWriterCharArrayWriterBufferedWriterBufferedWriterOutputStreamWriterOutputStreamWriterPipedWriterPipedWriterPrintWriterPrintWriter13例例5-1,一个封装了缓冲输入流的类:一个封装了缓冲输入流的类:sourceimport java.io.*;class source private Bu
7、fferedInputStream bis;public source(String filename)/构造方法构造方法 /判断是否从键盘读判断是否从键盘读 if(filename.toLowerCase().compareTo(stdin)=0)bis=new BufferedInputStream(System.in);/建立缓冲区键建立缓冲区键盘输入流对象盘输入流对象 else try /异常结构,在本章的后面中介绍异常结构,在本章的后面中介绍 /建立缓冲区文件输入流对象建立缓冲区文件输入流对象 bis=new BufferedInputStream(new FileInputStre
8、am(filename);catch(Exception e)/异常结构在本章的后面中介绍异常结构在本章的后面中介绍 public String readaline()/从输入流中读入一行字符从输入流中读入一行字符 return(null);/此处为预留功能,后面将添加具体实现此处为预留功能,后面将添加具体实现 public void close()/关闭输入流关闭输入流14例例5-2,一个封装了缓冲输出流的类:一个封装了缓冲输出流的类:sinkimport java.io.*;class sink private BufferedOutputStream bos;public sink(St
9、ring filename)/构造方法构造方法 /判断是否向屏幕写判断是否向屏幕写 if(filename.toLowerCase().compareTo(stdout)=0)bos=new BufferedOutputStream(System.out);/建立缓冲建立缓冲区屏幕输出流对象区屏幕输出流对象 else try/异常结构在本章的后面中介绍异常结构在本章的后面中介绍 /建立缓冲区文件输出流对象建立缓冲区文件输出流对象 bos=new BufferedOutputStream(new FileOutputStream(filename);catch(Exception e)/异常结构
10、在本章的后面中介绍异常结构在本章的后面中介绍 public void writealine(String s)/向输出流中写入一行字符向输出流中写入一行字符 public void close()/关闭输出流关闭输出流15例例5-3,trans程序的的程序的的main方法:方法:public class trans public static void main(String args)/检查是否输入了三个参数,并且第三个参数只是一个字符检查是否输入了三个参数,并且第三个参数只是一个字符 if(args.length!=3)|(args2.length()!=1)printInfo();/输出
11、本程序的使用方法输出本程序的使用方法 System.exit(0);/结束运行结束运行 char transmode;/用于保存命令行的第三个参数,即进行何种种转换用于保存命令行的第三个参数,即进行何种种转换 transmode=args2.charAt(0);/从命令行获取第三个参数从命令行获取第三个参数 /根据第三个参数值用不同的参数调用根据第三个参数值用不同的参数调用doTrans方法实现代编码转换方法实现代编码转换 switch(transmode)case U:case u:/将将Unicode码转换成字符码转换成字符;System.out.println(实现实现Unicode码转
12、换成字符的工作尚未完成码转换成字符的工作尚未完成);doTrans(args0,args1,1);/调用调用doTrans方法将方法将Unicode码转换成字码转换成字符符;break;16例例5-3,trans程序的的程序的的main方法(续):方法(续):case C:case c:/将字符转换成将字符转换成Unicode码码 System.out.println(实现字符转换成实现字符转换成Unicode码的工作尚未完成码的工作尚未完成);doTrans(args0,args1,2);/调用调用doTrans方法将字符转换成方法将字符转换成Unicode码码;break;case N:c
13、ase n:/不进行转换不进行转换 System.out.println(实现文件复制的工作尚未完成实现文件复制的工作尚未完成);doTrans(args0,args1,0);/调用调用doTrans方法实现文件复制方法实现文件复制;break;default:printInfo();/输出本程序的使用方法输出本程序的使用方法 System.exit(0);/结束运行结束运行 17例例5-3,trans程序的的程序的的main方法(续):方法(续):static void doTrans(String infile,String outfile,int flag)String linein,l
14、ineout=;source sin=new source(infile);/根据第一个参数构造一个输入流类根据第一个参数构造一个输入流类 sink sout=new sink(outfile);/根据第二个参数构造一个输出流类根据第二个参数构造一个输出流类 linein=sin.readaline();/读入一行字符到读入一行字符到linein中中 while(linein!=null)/如果如果linein不为空不为空,则对其进行处理则对其进行处理 if(flag=1)/将将Unicode码转换成字符的程序将在后面实现码转换成字符的程序将在后面实现;else if(flag=2)/将字符转
15、换成将字符转换成Unicode码的程序将在后面实现码的程序将在后面实现;else if(flag=0)/实现文件复制的程序将在后面实现实现文件复制的程序将在后面实现;sout.writealine(lineout);/将将lineout写出到输出流中写出到输出流中 linein=sin.readaline();/读入下一行字符到读入下一行字符到linein中中 sin.close();/关闭输入流关闭输入流 sout.close();/关闭输出流关闭输出流 18例例5-3,trans程序的的程序的的main方法(续):方法(续):static void printInfo()System.ou
16、t.println(正确的格式是正确的格式是:java trans );System.out.println(数据源可以是数据源可以是stdin代表键盘,或者文件代表键盘,或者文件名名);System.out.println(数据源可以是数据源可以是stdout代表屏幕,或者文代表屏幕,或者文件名件名);System.out.println(转换方式可以转换方式可以U,代表将,代表将Unicode码转码转换成字符;换成字符;或者或者C,代表将字符转换成,代表将字符转换成Unicode码;或者码;或者N表示表示不进行换不进行换);19 5.2.3 字节流从字节输入流中读数据 int read()
17、;int read(byte buffer);int read(byte buffer,int offset,int length);向字节输出流中写数据 void write(int b);void write(byte buffer);void write(byte buffer,int offset,int length);20 5.2.3 字节流阻塞式(Blocking)读写与非阻塞式(Blocking)读写方式常用字节流 字节文件流:FileInputStream和FileOutputStream 字节缓冲区流:BufferedInputStream和BufferedOutputSt
18、ream 数据字节流:DataInputStream和DataOutputStream21 5.2.3 字节流:重写trans程序例5-4:能进行字节输入流读操作的source类例5-5:能进行字节输出流写操作的sink类例5-6:将字符转换为Unicode码的ChartoUnicode类例5-7:将Unicode码转换为字符的UnicodetoChar类对main()方法的改动22【例例5-4】能进行字节输入流读操作的source类,源代码如下:/source.javaimport java.io.*;class source private BufferedInputStream bis;
展开阅读全文