Что было бы весьма полезно, если бы вы также предоставили Учащиеся Код класса в своем опубликованном вопросе, но в любом случае .....
Очевидно, ранее в вашем методе main () вы использовали пользовательский ввод для заполнения интерфейса List ученика, а затем я предполагаю, что вы успешно записали содержимое этого списка в текстовый файл. Продолжай эту мысль .....
Приложение закрывается. Теперь вы перезапустите его и теперь хотите пополнить список Ну, в общем, вам просто нужно делать в точности то, что вы делали в методе main () .
Как вы можете это сделать (не проверено!):
Убедитесь, что List<Student> students;
объявлена как переменная члена класса в том же самом классе, в котором находится ваш метод main () . Это сделает переменную студентов глобальной для всего класса (среди всего возможного). Теперь добавьте следующий метод в ваш основной класс. Этот метод заполнит студентов Список:
public static int loadStudentData(String fileName) {
// Create a List to hold file data;
List<String> dataList = new ArrayList<>();
// Fill The Data List.
// Use 'Try With Resources' to auto-close the BufferedReader.
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
// Skip blank lines (if any);
if (line.trim().equals("")) {
continue;
}
dataList.add(line);
}
}
catch (IOException fileNotFound) {
System.out.println("File Not Found.");
}
/*
Now that you have all the Student Data from file you can
Fill in Student instance objects and add them to the students
List Object
Keep in mind, I have no idea what constructor(s) or
what Getters and Setters you have in your Student
Class OR what is contained within the data file so
we'll keep this real basic.
*/
// Declare an instance of Student.
Student student;
// Number of students to process
int studentCount = dataList.size();
// Just in case...clear the students List if it contains anything.
if (students != null || students.size() > 0) {
students.clear();
}
// Iterate through the list holding file data (dataList)
for (int i = 0; i < studentCount; i++) {
student = new Student(); // initialize a new Student
// Assuming each data line is a comma delimited string of Student data
String[] studentData = dataList.get(i).split(",|,\\s+");
student.setStudentID(studentData[0]); // String
student.setStudentName(studentData[1]); // String
student.setStudentAge(Integer.parseInt(studentData[2])); // Integer
student.setStudentGrade(studentData[3]); // String
// Add this instance of Student to the students List.
students.add(student);
}
// Return the number of students processed (just in case you want it).
return studentCount;
// DONE.
}
Примечание. Не забудьте закрыть свой BufferedWriter другим методом * writeToFile () **.