异常处理和输入输出流

实验目的

  1. 了解异常的概念和异常处理机制
  2. 掌握捕捉异常的方法
  3. 掌握创建自定义异常

实验学时 2学时

输入输出流

实验目的

1.理解Java技术体系中“流”的概念。

2.掌握System.in和System.out的基本使用方法

3.掌握字节流和字符流的常用类及使用方法。

4.掌握Java程序对文件的基本操作。

实验学时 4学时

实验内容

  1. 设计一个程序,输入两个整数和一个算术运算符(+、-、*、/),根据运算符,计算两个整数的运算结果。考虑到用户输入的数据不合法,需要捕获异常(数据格式异常、除零异常、非法运算符异常)。
  2. package 实验八;
    import java.util.Scanner;
    import java.util.InputMismatchException;  //导入输入不匹配异常
    public class Sy3 {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    int a,b;
    String c;
    try {  //选定捕获异常的范围
    System.out.println("请输入需要计算的两个整数:");
    a=in.nextInt();
    b=in.nextInt();
    System.out.println("请输入运算符:");
    c=in.next();
    switch(c) {
    case "+":
    System.out.println(a + c + b +"="+(a+b));
    break;
    case "-":
    System.out.println(a + c + b +"="+(a-b));
    break;
    case "*":
    System.out.println(a + c + b +"="+(a*b));
    break;
    case "/":
    System.out.println(a + c + b +"="+(a/b));
    break;
    default: 
    throw new Exception();  //声明抛弃异常
    }
    }catch(InputMismatchException e) {  //处理数据不匹配异常
    System.out.println("数据格式异常!");
    }catch(ArithmeticException e) {  //处理除0异常
    System.out.println("除0异常!");
    }catch(Exception e) {  //处理default语句中抛弃的非法运算符异常
    System.out.println("非法运算符异常!");
    }
    }
    }

    1.编写程序使用System.in对象的read()方法读取键盘输入,当程序运行时,首先询问需要输入的数据个数,然后依次输入指定个数的整数,输入完毕后,输出所有输入整数的和。

  3. package 实验九;
    import java.io.BufferedReader;  //带缓冲功能的字符输入流
    import java.io.IOException;
    import java.io.InputStreamReader;  //字节流向字符流转化的流
    public class Sy1 {
    
    	public static void main(String[] args)throws NumberFormatException,Exception {
    		// TODO 自动生成的方法存根
    		int a[]=new int[512];  //创建一个接收键盘输入数据的输入流
    		int sum=0;
    		InputStreamReader c = new InputStreamReader(System.in);  //输入流放入缓冲流
    		BufferedReader d = new BufferedReader(c);
    		System.out.println("请输入数的总数:");
    		int n=Integer.parseInt(d.readLine());  //转换为基本数据类型int
    		System.out.println("这些数分别是:");
    		for(int i=0;i<n;i++) {
    			int b=Integer.parseInt(d.readLine());
    			a[i]=b;
    			sum+=a[i];
    		}
    		System.out.println("所有输入的数和为:"+sum);
    
    	}
    
    }
    

  4. 在电脑D盘创建一个名为FileList的文本文件,将D盘下所有文件及文件夹名称保存到这个文件中。
  5. package 实验九;
    import java.io.File;
    import java.io.FileWriter;
    public class Sy2 {
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		try {
    			File f=new File("D:\\FileList");
    			if(!f.exists()){//如果不存在
    			f.createNewFile();  //创建一个文本文件
    			}
    			else {
    				System.out.println("文件已存在");
    			}
    			File file=new File("D:\\");
    			File[] fs=file.listFiles();
    			FileWriter out = new FileWriter(f);
    			for(File fs1 : fs) {
    				out.write(fs1.getPath()+'\r'+'\n');
    			}
    			out.close();
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    }

    5.对于重要文件通常需要进行加密处理,请编写程序实现对文本文件的加密,密码表如下,明文如果是大写字母则密文也为密码表对应大写字母,明文如果是小写字母则密文也为密码表对应小写字母。

  6. 明文

    A

    B

    C

    D

    E

    F

    G

    H

    I

    J

    K

    L

    M

    密文

    T

    O

    I

    A

    N

    D

    E

    G

    H

    Z

    B

    K

    F

    明文

    N

    O

    P

    Q

    R

    S

    T

    U

    V

    W

    X

    Y

    Z

    密文

    J

    M

    C

    L

    P

    Y

    V

    X

    Q

    R

    W

    U

    S

  7. package 实验九;
    import java.io.File;
    import java.io.FileReader;  //文件字符输入流
    import java.io.FileWriter;  //文件字符输出流
    import java.util.Scanner;
    public class Sy5 {
    	public static void main(String[] args) throws Exception {
    		char reality[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
    				'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
    		char fake[] = { 'T', 'O', 'I', 'A', 'N', 'D', 'E', 'G', 'H', 'Z', 'B', 'K', 'F', 'J', 'M', 'C', 'L', 'P', 'Y',
    				'V', 'X', 'Q', 'R', 'W', 'U', 'S' };  //创建两个数组,分别填入字母以及加密后的密文
    		FileWriter fw = new FileWriter(new File("D:\\FileList"));
    		FileReader fr = new FileReader(new File("D:\\FileList"));  //对实验2中创建的文件进行加密
    		Scanner in = new Scanner(System.in);
    		String str = in.nextLine();
    		char[] a = str.toCharArray();  //将字符串转换为字符数组
    		for (int n = 0; n < a.length; n++) {
    			for (int i = 0; i < 26; i++) {
    				if (a[n] == reality[i]) {  //加密字母
    					a[n] = fake[i];
    					break;
    				} else if (a[n] <= 'z' && a[n] >= 'a') {  //小写字母转换为大写字母
    					if (reality[i] == (char) (a[n] - 32)) { //强制类型转换
    						a[n] = (char) (fake[i] + 32);  //将大写密文转换成小写
    						break;
    					}
    				}
    			}
    		}
    		fw.write(a);
    		in.close();
    		fw.close();
    		fr.close();
    	}
     
    }

猜你喜欢

转载自blog.csdn.net/foxmaxiaoyu/article/details/125115298
今日推荐