编写一个程序,实现一下功能,要求 设计一个学生student类,包含学号、姓名、出生日期、性别等字段 从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 对学生集合list进行排序,按照出生日期从早到晚排序(即年龄由大到小) 将排序后的学生集合list输出到output.txt文件中,输出格式同input.txt:一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开java
时间: 2024-02-11 12:09:57 浏览: 60
以下是实现上述功能的Java程序:
```java
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
class Student implements Comparable<Student> {
private int id;
private String name;
private Date birthDate;
private String gender;
public Student(int id, String name, Date birthDate, String gender) {
this.id = id;
this.name = name;
this.birthDate = birthDate;
this.gender = gender;
}
@Override
public int compareTo(Student o) {
return this.birthDate.compareTo(o.birthDate);
}
@Override
public String toString() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return String.format("%d %s %s %s", id, name, dateFormat.format(birthDate), gender);
}
}
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.hasNext()) {
int id = scanner.nextInt();
String name = scanner.next();
Date birthDate = new SimpleDateFormat("yyyy-MM-dd").parse(scanner.next());
String gender = scanner.next();
students.add(new Student(id, name, birthDate, gender));
}
scanner.close();
} catch (Exception e) {
e.printStackTrace();
}
Collections.sort(students);
try {
PrintWriter writer = new PrintWriter(new File("output.txt"));
for (Student student : students) {
writer.println(student.toString());
}
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
程序首先定义了一个`Student`类,包含学生的基本信息,实现了`Comparable`接口以便对学生按照出生日期排序。然后在`main`函数中,读取`input.txt`文件中的学生信息,将其存入一个`List`中,然后调用`Collections.sort`方法对学生进行排序。最后将排序后的学生信息写入`output.txt`文件中。
阅读全文