编写一个程序,实现一下功能,要求 设计一个学生student类,包含学号、姓名、出生日期、性别等字段 从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 对学生集合list进行排序,按照出生日期从早到晚排序(即年龄由大到小) 将排序后的学生集合list输出到output.txt文件中,输出格式同input.txt:一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开
时间: 2024-02-09 11:13:05 浏览: 141
以下是实现上述功能的Java代码:
Student.java:
```java
import java.util.Date;
public class Student implements Comparable<Student> {
private String id;
private String name;
private Date birthday;
private String gender;
public Student(String id, String name, Date birthday, String gender) {
this.id = id;
this.name = name;
this.birthday = birthday;
this.gender = gender;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public Date getBirthday() {
return birthday;
}
public String getGender() {
return gender;
}
@Override
public int compareTo(Student o) {
return this.birthday.compareTo(o.birthday); // 按照出生日期从早到晚排序
}
@Override
public String toString() {
return id + " " + name + " " + birthday + " " + gender;
}
}
```
Main.java:
```java
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = br.readLine()) != null) { // 逐行读取input.txt文件
String[] data = line.split(" "); // 将每行数据按空格分隔
String id = data[0];
String name = data[1];
Date birthday = new SimpleDateFormat("yyyy-MM-dd").parse(data[2]); // 解析出生日期
String gender = data[3];
Student student = new Student(id, name, birthday, gender);
list.add(student); // 将学生对象存入list集合中
}
} catch (IOException | ParseException e) {
e.printStackTrace();
}
Collections.sort(list); // 对list集合进行排序
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
for (Student student : list) { // 遍历排序后的list集合
bw.write(student.toString()); // 将学生对象按照要求的格式输出到output.txt文件中
bw.newLine(); // 换行
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
此代码将读取名为"input.txt"的文件中的学生信息,并将其存储到学生集合list中。然后,对学生集合list进行排序,按照出生日期从早到晚排序。最后,将排序后的学生集合list输出到名为"output.txt"的文件中,输出格式同"input.txt":一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开。
阅读全文