编写一个Java程序,实现一下功能,要求 1.设计一个学生student类,包含学号、姓名、出生日期、性别等字段 2.从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 3.对学生集合list进行排序,按照出生日期从早到晚排序(即年龄由大到小) 4.将排序后的学生集合list输出到output.txt文件中,输出格式同inputtxt:一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开
时间: 2024-02-18 12:04:40 浏览: 54
Java编写一个学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息
好的,以下是 Java 代码实现:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
// 读取学生信息并存入列表
try (Scanner scanner = new Scanner(new File("input.txt"))) {
while (scanner.hasNextLine()) {
String[] tokens = scanner.nextLine().split("\\s+");
String id = tokens[0];
String name = tokens[1];
LocalDate birthdate = LocalDate.parse(tokens[2], DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String gender = tokens[3];
students.add(new Student(id, name, birthdate, gender));
}
} catch (IOException e) {
e.printStackTrace();
}
// 按出生日期排序
Collections.sort(students);
// 输出到文件
try (FileWriter writer = new FileWriter(new File("output.txt"))) {
for (Student student : students) {
writer.write(student.toString() + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Student implements Comparable<Student> {
private String id;
private String name;
private LocalDate birthdate;
private String gender;
public Student(String id, String name, LocalDate birthdate, String gender) {
this.id = id;
this.name = name;
this.birthdate = birthdate;
this.gender = gender;
}
@Override
public int compareTo(Student other) {
return this.birthdate.compareTo(other.birthdate);
}
@Override
public String toString() {
return String.format("%s %s %s %s", id, name, birthdate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), gender);
}
}
```
这里我们定义了一个 `Student` 类,包含学生的学号、姓名、出生日期和性别。我们从 `input.txt` 文件中读取学生信息并存入 `students` 列表中。然后我们对学生列表进行排序,按照出生日期从早到晚排序。最后将排序后的学生列表输出到 `output.txt` 文件中。
请将 `input.txt` 文件和上面的代码放在同一个目录下并运行代码,即可生成 `output.txt` 文件。
阅读全文