已知有一个文件student.txt保存班级的学生名单。每个学生的记录占据一行,形如: 6009125088,张三 6009125090,李四 …… 请编写程序,实现简单学生记录检索应用。即从键盘输入一个学生的学号,如果学号在在student.txt文件中,可以显示该学生记录,如果输入的学号不在文件中,则显示检索失败的信息。其中,代码必须结合异常处理机制来实现,例如自定义一个StudentNotFoundException用于表示学生检索失败的异常。用java语言实现
时间: 2024-04-02 11:31:37 浏览: 48
好的,以下是Java语言实现的示例代码:
```java
import java.io.*;
class StudentNotFoundException extends Exception {
public StudentNotFoundException() {}
public StudentNotFoundException(String message) {
super(message);
}
}
class StudentRecord {
private String id;
private String name;
public StudentRecord(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String toString() {
return id + "," + name;
}
}
public class StudentSearch {
public static void main(String[] args) {
try {
String studentId = input("请输入要检索的学生学号:");
StudentRecord student = searchStudent(studentId);
System.out.println(student);
} catch (IOException e) {
System.out.println("输入错误:" + e.getMessage());
} catch (StudentNotFoundException e) {
System.out.println("未找到该学生的记录!");
}
}
public static String input(String prompt) throws IOException {
System.out.print(prompt);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
public static StudentRecord searchStudent(String studentId) throws IOException, StudentNotFoundException {
BufferedReader br = new BufferedReader(new FileReader("student.txt"));
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
if (fields[0].equals(studentId)) {
br.close();
return new StudentRecord(fields[0], fields[1]);
}
}
br.close();
throw new StudentNotFoundException();
}
}
```
代码说明:
1. 自定义了一个`StudentNotFoundException`异常类用于表示学生检索失败的异常。
2. 定义了一个`StudentRecord`类表示学生记录,包含学号和姓名两个属性。
3. `main`函数中调用`input`函数获取用户输入的学生学号,并调用`searchStudent`函数进行检索。
4. 在`searchStudent`函数中使用了`BufferedReader`类读取`student.txt`文件中的学生记录,并使用`split`方法将一行记录分割成学号和姓名两个字段。
5. 在`searchStudent`函数中使用了`try...catch`语句来捕获文件不存在和学生检索失败的异常,并进行相应的处理。
希望能够帮助到您!
阅读全文