java书写代码:有一个学生信息文件student.txt,文件格式如下 103 吴勇 J179 1998-03-04 158 刘三 J176 1995-11-05 240 何坤 J176 1996-03-26 238 赵军 J179 1997-03-14 …… 分别代表学生的学号、姓名、班级、和生日 要求将学生信息按班级进行划分,将同一个班级的学生存放进不同的班级文件中(以班级名称做为文件名) 比如:在J179.txt文件中,存放 103 吴勇 J179 1998-03-04 238 赵军 J179 1997-03-14 …… 在J176.txt文件中,存放 158 刘三 J176 1995-11-05 240 何坤 J176 1996-03-26 …… 注意:有几个班级现在是未知的。 要求: 良好的编码规范,良好的命名和合理的注释
时间: 2024-01-14 11:03:23 浏览: 16
以下是Java代码实现:
```java
import java.io.*;
public class StudentInfo {
public static void main(String[] args) {
String filePath = "student.txt";
File file = new File(filePath);
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
String[] info = line.split(" ");
String className = info[2];
// 如果班级未知,跳过此行
if (className.equals("unknown")) {
continue;
}
// 将学生信息写入对应的班级文件中
String fileName = className + ".txt";
try (BufferedWriter bw = new BufferedWriter(new FileWriter(fileName, true))) {
bw.write(line);
bw.newLine();
} catch (IOException e) {
System.out.println("无法写入文件: " + fileName);
}
}
} catch (IOException e) {
System.out.println("读取文件失败: " + filePath);
}
}
}
```
代码中使用了 Java 的文件读写操作,首先读取学生信息文件 `student.txt`,然后根据班级名称将学生信息分别写入不同的班级文件中。
在读取每一行学生信息时,先使用 `String` 类的 `split` 方法将学生信息按空格分割成一个字符串数组,然后取出数组中第三个元素即班级名称。如果班级名称为 `unknown`,则跳过此行不写入文件。
将学生信息写入班级文件时,使用了 Java 的 `BufferedWriter` 类和 `FileWriter` 类,其中 `BufferedWriter` 类是对 `FileWriter` 类的缓冲优化。同时,在写入时使用了 `newLine` 方法换行,使得写入的学生信息更加清晰易读。
最后,为了保证代码可读性和可维护性,我们使用了良好的编码规范、命名和注释。