java读取txt按照成绩排序
时间: 2023-05-16 14:01:15 浏览: 101
要使用Java读取文本文件并按照成绩排序,需要以下步骤:
1. 读取文件:使用Java中的File和Scanner类,通过读取文本文件,将文件中的数据载入内存。
2. 数据处理:将内存中的数据按照成绩进行排序处理。可以使用Java中的排序算法,如快速排序、冒泡排序等。
3. 数据输出:将排序后的数据输出到文本文件中,可以使用Java中的FileWriter和BufferedWriter类。
以下是一个示范代码:
```java
import java.io.*;
import java.util.*;
public class SortByScore {
public static void main(String[] args) throws Exception{
File file = new File("grades.txt");
Scanner scanner = new Scanner(file);
List<Student> list = new ArrayList<Student>();
while (scanner.hasNextLine()) {
String s = scanner.nextLine();
String[] arr = s.split(",");
String name = arr[0];
int score = Integer.parseInt(arr[1]);
Student student = new Student(name, score);
list.add(student);
}
scanner.close();
Collections.sort(list); //使用Collections.sort方法对list进行排序
BufferedWriter writer = new BufferedWriter(new FileWriter("sorted_grades.txt"));
for (Student student : list) {
writer.write(student.toString());
writer.newLine();
}
writer.close();
}
}
class Student implements Comparable<Student>{
private String name;
private int score;
public Student(String name, int score){
this.name = name;
this.score = score;
}
public String getName(){
return this.name;
}
public int getScore(){
return this.score;
}
public void setName(String name){
this.name = name;
}
public void setScore(int score){
this.score = score;
}
public String toString(){
return this.name + "," + this.score;
}
//实现Comparable接口的compareTo方法
public int compareTo(Student o) {
if (this.score > o.score) {
return -1;
} else if (this.score < o.score) {
return 1;
}
return this.name.compareTo(o.name);
}
}
```
以上示范代码会读取文件"grades.txt"中的数据,并将数据按照成绩从大到小排序,最终将排序结果输出到文件"sorted_grades.txt"中。在代码中实现了Comparable接口的compareTo方法,通过该方法可以对Student对象进行排序。