java练习题V1 下载本文

System.out.println(\异常处理测试 ***\ System.out.println(\ int sum = 100/num; int array[ ]={0,1,2}; array[num]=sum; }

catch( ArithmeticException e ) {

System.out.println(\被零除:\ }

catch( ArrayIndexOutOfBoundsException e ) {

System.out.println(\数组越界:\ }

finally {

System.out.println(\ } } }

问题:在java的异常处理机制中,try程序块、catch程序块和finally程序块各起到什么作用?

答:Try程序块作用: 说明抛出异常的部位,该部位含有抛出异常的语句。

Catch程序块作用:接抛出的异常类进行捕获,并进行处理。当catch前面的try 块中发生了一个异常,try-catch语句就会自动在try块后面的各个catch块中,找出与该异常类相匹配的参数。当参数符合以下3个条件之一时,就认为这个参数与产生的异常相匹配: 参数与产生的异常属于一个类; 参数是产生的异常的父类;

参数是一个接口时,产生的异常实现了这一接口。

当产生的异常找到了第一个与之相匹配的参数时,就执行包含这一参数的catch语句中的java代码。

Finally程序快作用:finally语句可以说是为异常处理事件提供的一个清理机制,一般是用来关闭文件或释放其他的系统资源。作为try-catch-finally结构的一部分,可以没有 finally语句,如果存在finally语句,不论try块中是否发生了异常,是否执行过catch 语句,都要执行finally语句。

4.编写从键盘读入10个字符放入一个字符数组,并在屏幕上显示它们的程序。请处理数组越界异常.

第九章 习题及思考题

1、编一个应用程序,按行顺序地读取一个可读文件的内容。

public class ReaderFile

{

public static void main(String[] args) {

//编一个应用程序,按行顺序地读取一个可读文件的内容 String s; //String s1=\龙卷风的考虑适当考虑饭店客房\ FileInputStream fi;

//FileOutputStream fo=null; InputStreamReader ir; //OutputStreamWriter or; BufferedReader os; // BufferedWriter bw; try { /*

fo=new FileOutputStream(\

bw=new BufferedWriter(new OutputStreamWriter(fo)); bw.write(s1); bw.flush(); bw.close() */;

fi=new FileInputStream(\); ir=new InputStreamReader(fi); os=new BufferedReader(ir); while((s=os.readLine())!=null) { } }

catch(FileNotFoundException e) {

System.out.println(\+e); }

catch(IOException e) {

System.out.println(\+e); } } }

System.out.println(\+s);

2、把Hashtable存放的信息输出到磁盘文件中,并再从中读进Hashtable.

3、利用StringBuffer类编写从键盘读入字符串、整数、实型数,并在屏幕上输出。

源程序:

import java.io.IOException; public class StringBufferedFile {

public static void main(String[] args)throws IOException { char c;

StringBuffer sb=new StringBuffer();

while((c=(char)System.in.read())!='\\n')//键盘输入字符,有换行结束 { sb.append(c);//把字符加到sb对象中 } String str=sb.toString(); System.out.println(str); } }

4、什么叫流?简述流的分类? 答:“流”可以被理解为一条“管道”。这条“管道”有两个端口:一端与数据源(当输入数据时)或数据宿(当输出数据时)相连,另一端与程序相连。在与数据源或是数据宿相连的端口,“管道”在读/写数据时能够应付数据源和数据宿的多样性,消化掉因数据源和数据宿的多样性带来的数据读/写的复杂性;而在与程序相连的端口,“管道”提供了输入/输出的统一界面。

根据流中的数据传输的方向,流可分为输入流和输出流;根据“管道”里流动的数据的类型,流可分为字符流和字节流;根据流的建立方式和工作原理,流可分为节点流与过滤流。

5、编写一个测试文件一般属性(如显示文件的路径、绝对路径、显示文件是否可写、显示文件是否可读、显示文件的大小等属性)的程序。 import java.io.*; public class Test1 {

//file类的方法使用

public static void main(String [] args){ File file=new File(\ //File.pathSeparator if(!file.exists()) {

System.out.println(\文件不存在\ } else {

System.out.println(\文件的绝对路径 \ System.out.println(\文件路径 \ System.out.println(\文件名 \

System.out.println(file.canWrite()?\文件可写 \文件不可可写\

System.out.println(\文件长度 \

//System.out.println(\文件是否可读 \

System.out.println(file.canRead()?\文件可读 \文件不可读\ } } }

6、利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果。

import java.io.*;

public class testRandom2 {

/*利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,

每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果 */

public static void main(String args[]) { }

try { }

catch (IOException e) { }

System.out.println(e.toString());

RandomAccessFile rf = new RandomAccessFile(\, for (int i = 0; i < 10; i++) { }

rf.close();

rf = new RandomAccessFile(\, \); rf.seek(5 * (4 + 8)); rf.writeInt(47);

rf.writeDouble(47.0001); rf.close();

rf = new RandomAccessFile(\, \); for (int i = 0; i < 10; i++) { }

rf.close();

System.out.println(\ + rf.readInt() + \

+ rf.readDouble());

rf.writeInt(i);

rf.writeDouble(i * 1.414);

\);