(1)创建3个学生对象,按学号排序后写入文件。 2)再从文件中读取并输出所有学生对象。用java代码写一下这道题
时间: 2023-12-03 15:45:33 浏览: 57
代码如下:
```java
import java.io.*;
import java.util.*;
public class Student implements Comparable<Student> {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public int compareTo(Student o) {
return Integer.compare(this.id, o.id);
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) throws IOException {
List<Student> students = new ArrayList<>();
students.add(new Student(1001, "Tom"));
students.add(new Student(1003, "Jerry"));
students.add(new Student(1002, "Alice"));
// sort by id
Collections.sort(students);
// write to file
try (PrintWriter writer = new PrintWriter("students.txt")) {
for (Student student : students) {
writer.println(student.getId() + "," + student.getName());
}
}
// read from file
try (BufferedReader reader = new BufferedReader(new FileReader("students.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] split = line.split(",");
int id = Integer.parseInt(split[0]);
String name = split[1];
System.out.println(new Student(id, name));
}
}
}
}
```
运行结果:
```
Student{id=1001, name='Tom'}
Student{id=1002, name='Alice'}
Student{id=1003, name='Jerry'}
```