实验报告-Java输入、输出和异常处理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验四Java输入、输出和异常处理一、实验目的1.了解I/O流的使用;2.掌握常见的输入/输出流类及其主要方法。3.熟悉System类,掌握标准输入/输出。4.学会利用Try-catch-finally语句来捕获和处理异常;5.掌握自定义异常类的方法。二、实验要求1.使用标准数据流的应用程序。2.使用文件输入输出流的应用程序。3.通过编程理解系统异常处理的机制和创建自定义异常的方法。三、实验内容(一)使用标准数据流的应用程序标准数据流指在字符方式下(如DOS提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。1.程序功能:将键盘上输入的字符在屏幕上显示出来。2.编写SY4_1.java程序文件,源代码如下:classSY4_1{publicstaticvoidmain(String[]args)throwsjava.io.IOException{bytebuffer[]=newbyte[10];System.out.println(从键盘输入不超过10个字符,按回车键结束输入:);intcount=System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer中System.out.println(保存在缓冲区buffer中元素的个数为:+count);System.out.println(buffer中各元素的值为:);for(inti=0;icount;i++){System.out.print(+buffer[i]);//在屏幕上显示buffer元素的值}System.out.println();System.out.println(输出buffer字符元素:);System.out.write(buffer,0,buffer.length);}}3.编译、运行SY4_1.java文件。(二)使用文件输入输出流的应用程序1.程序功能:将保存在本地机当前文件夹中的SY5_6.HTML文本文件的内容在屏幕上显示出来,然后将其另存为SY4_6.txt文件。2.编写SY4_2.java程序文件,源代码如下:importjava.io.*;publicclassSY4_2{publicstaticvoidmain(String[]args)throwsIOException{FileReaderin=newFileReader(SY4_2.HTML);//建立文件输入流BufferedReaderbin=newBufferedReader(in);//建立缓冲输入流FileWriterout=newFileWriter(SY4_2.txt,true);//建立文件输出流Stringstr;while((str=bin.readLine())!=null){//将缓冲区内容通过循环方式逐行赋值给字符串strSystem.out.println(str);//在屏幕上显示字符串strout.write(str+\n);//将字符串str通过输出流写入KY5_1.txt中}in.close();out.close();}}3.编译、运行程序。(四)异常处理机制1.编写使用try…catch语句处理异常的程序文件SY4_3.java,源代码如下:publicclassSY4_3{publicstaticvoidmain(String[]arg3){System.out.println(这是一个异常处理的例子\n);try{inti=10;i/=0;}catch(ArithmeticExceptione){System.out.println(异常是:+e.getMessage());}finally{System.out.println(finally语句被执行);}}}编译并运行程序。注意:如果在catch语句中声明的异常类是Exception,catch语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。2.编写SY4_4.java程序,计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。源代码如下:Importjava.io.*;ClassSY4_4{publicstaticvoidmain(stringargs[]){try{BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in);System.out.print(“请输入除数:”);Stringcl=strin.readLine();inta=Integer.parseInt(cl);System.out.print(“请输入被除数:”);cl=strin.readLine();intb=Integer.parseInt(cl);intc=b/a;System.out.println(“商为:”+c);}//捕获与I/O有关的异常catch(IOExceptione){eprintStackTrace();}//捕获数值转化时的异常,如不能将字符转化成数值catch(IOExceptione){e.printStackTrace();}//捕获数值转化时的异常,如不能将字符转化成数值catch(NunberFormatExceptione){System.out.println(“请输入整数!”);//e.printStackTrace();}//捕获除数为0的异常catch(ArithmeticExceptione){System.out.println(“除数不可以0!”);//e.printstackTrace();}}}编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。3.编写程序SY4_5.java,包含自定义异常,当输入数值为13和4时抛出该异常。源代码如下:classEx2extendsException{Ex2(Stringmsg){super(msg);}}classSY4_5{privateintx;voidsetX(intx){this.x=x;}voidf1()throwsEx2{if(x==13)thrownewEx2(“Idon’tlike13!”);elseif(x==4)thrownewEx2(“Idon’tlike4!”);elsesystem.out.println(100/x);}publicstaticvoidmain(Sstringargs[]){SY4_5a=newSY4_5();try{a.steX(5);//a.setX(13);//a.setX(4);//a.setX(0);a.f1();}catch(Exe){Sytem.out.println(“getmessage:”+e.getMessage());}}编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。四、实验练习题1.编写程序,将一个文本文件中的内容,以行为单位,调整为倒序排列。2.教材P206实验一、二、四

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功