编写一个程序,实现一下功能,要求 设计一个学生student类,包含学号、姓名、出生日期、性别等字段 从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 对学生集合list进行排序,按照出生日期从早到晚排序(即年龄由大到小) 将排序后的学生集合list输出到output.txt文件中,输出格式同input.txt:一行一个学生,依次输出学号、姓名、出生日期、性别并用空格隔开 【附件下载】 请在链接上右击另存为进行下载 input.txt,java
时间: 2024-02-25 14:58:16 浏览: 154
好的,根据您的要求,我可以给您提供 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.Comparator;
import java.util.List;
import java.util.Scanner;
class 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;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public LocalDate getBirthdate() {
return birthdate;
}
public String getGender() {
return gender;
}
@Override
public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return id + " " + name + " " + birthdate.format(formatter) + " " + gender;
}
}
public class SortStudents {
public static void main(String[] args) throws IOException {
List<Student> students = new ArrayList<>();
// 读取学生信息
Scanner input = new Scanner(new File("input.txt"));
while (input.hasNext()) {
String id = input.next();
String name = input.next();
LocalDate birthdate = LocalDate.parse(input.next(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String gender = input.next();
Student student = new Student(id, name, birthdate, gender);
students.add(student);
}
input.close();
// 按照出生日期排序
Comparator<Student> comparator = Comparator.comparing(Student::getBirthdate);
Collections.sort(students, comparator);
// 输出学生信息
FileWriter output = new FileWriter(new File("output.txt"));
for (Student student : students) {
output.write(student.toString() + "\n");
}
output.close();
}
}
```
您可以将以上代码保存到 SortStudents.java 文件中,并将 input.txt 文件放到与 SortStudents.java 同级目录下。然后在命令行中运行以下命令:
```
javac SortStudents.java
java SortStudents
```
代码会自动读取 input.txt 文件中的学生信息,按照出生日期排序,并将结果输出到 output.txt 文件中。注意,代码中使用了 Java 8 的 LocalDate 类来处理日期,因此需要使用 Java 8 或更高版本来编译和运行代码。
阅读全文