22. (20.0分) 已知类A中有方法fn () 执行在当前目录下创建文件“1.txt",要求在类B的m () 中创建A的实例a并调用fn,并在此处利用try、catch完成异常处理(即不是在类A里try、catch),在main()中创建B的对象并调用m(),根据上述要求完成类A和类B的定义,要求书写规范,否则即使正确也会扣分
时间: 2024-02-20 14:56:40 浏览: 19
以下是符合要求的类A和类B的定义:
```java
import java.io.File;
import java.io.IOException;
public class A {
public void fn() throws IOException {
File file = new File("1.txt");
if (file.exists()) {
System.out.println("文件已经存在");
} else {
file.createNewFile();
System.out.println("文件已经创建");
}
}
}
public class B {
public void m() {
A a = new A();
try {
a.fn();
} catch (IOException e) {
System.out.println("文件创建失败");
e.printStackTrace();
}
}
public static void main(String[] args) {
B b = new B();
b.m();
}
}
```
在类A的fn方法中,如果文件已经存在,则输出“文件已经存在”;如果文件不存在,则调用createNewFile方法创建文件,并输出“文件已经创建”。在类B的m方法中,创建了A的实例a,并在try语句块中调用a的fn方法。如果fn方法执行过程中出现IOException异常,则在catch语句块中输出“文件创建失败”并打印异常的堆栈信息。在main方法中,创建B的实例b并调用m方法。