Чтение строк из файла, сортировка строк по одному полю и запись в файлJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Чтение строк из файла, сортировка строк по одному полю и запись в файл

Сообщение Anonymous »

У меня есть текстовый файл, содержащий информацию об учениках, и он имеет 5 столбцов: ID, FName, LName, Возраст, Оценка.
Я хочу отсортировать строки файла по оценкам ученика, но это не работает. Вот мой метод:
public static void sortAndShow() throws Exception {
ArrayList list = new ArrayList();
BufferedReader reader = new BufferedReader(new FileReader(originalFile));
String str = reader.readLine();
while (str != null) {
String[] detailsSt = str.split(" ");
int id = Integer.parseInt(detailsSt[0]);
String name = detailsSt[1];
String lastname = detailsSt[2];
int age = Integer.parseInt(detailsSt[3]);
int grade = Integer.parseInt(detailsSt[4]);
list.add(new Student(id, name, lastname, age, grade));
str = reader.readLine();
}
Collections.sort(list, new gradeCompare());

PrintWriter writer = new PrintWriter(new FileWriter(sortedFile, false));
for (Student st : students) {
writer.write((st.getStNum() + " " + st.getFirstName() + " " + st.getLastName() + " " + st.getAge() + " " + st.getGrade() + "\n"));
}
reader.close();
writer.close();
}

И мой внутренний класс, который выполняет процесс сравнения:
static class gradeCompare implements Comparator {
@Override
public int compare(Student o1, Student o2) {
return o2.getGrade() - o1.getGrade();
}
}

Мой текстовый файл перед сортировкой:
101 Jeff King 18 12
102 Tim Woods 17 19

Но после сортировки запишите то же содержимое в новый файл:
101 Jeff King 18 12
102 Tim Woods 17 19

Я хочу, чтобы после сортировки мой текстовый файл выглядел следующим образом (последний столбец — это оценка):
102 Tim Woods 17 19
101 Jeff King 18 12
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»