学生寻求帮助。
我有一个CSV文件格式(studentID,lastName,firstName,finalMark,finalGrade)。我试图将其读入Student类型的Student / ArrayList类型列表 - 尝试将每一行添加为新学生。我有一个Student类实现Comparable来排序文件。这个Student类有五个(studentID,lastName,firstName,finalMark,finalGrade)作为构造函数。
有人可以通过代码和/或说明向我展示如何使用FileReader和BufferedReader或(第二选择)扫描仪从文件读取到列表。
public static ArrayList <String> readAllLinesFromFile(String path) throws IOException {
// System.out.println("Cannot locate input file");
ArrayList<String> studentList = new ArrayList<String>();
FileReader fileReader = new FileReader("Question4unorderedList.csv");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = null;
while((line = bufferedReader.readLine())!=null) {
studentList.add(line);
}
bufferedReader.close();
return studentList;
}
所以我可以创建一个String类型的ArrayList。但是如何将这个字符串ArrayList转换/解析/转换为Student的List或ArrayList(我的学生类构造函数详细信息在上面)。
感谢您的帮助。
答案 0 :(得分:2)
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
List <Student> studentList = new ArrayList <>();
String fileIn = "Question4unorderedList.csv";
String fileOut = "Question4orderedList.csv";
String line = null;
// Read all lines in from CSV file and add to studentList
FileReader fileReader = new FileReader(fileIn);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((line = bufferedReader.readLine()) != null) {
String[] temp = line.split(",");
int studentID = Integer.parseInt(temp[0]);
String firstName = temp[1];
String lastName = temp[2];
int finalMark = Integer.parseInt(temp[3]);
String finalGrade = temp[4];
studentList.add(new Student(studentID, firstName, lastName, finalMark, finalGrade));
}
bufferedReader.close();