将CSV文件读入ArrayList <student> java

时间:2018-04-01 14:42:32

标签: java

学生寻求帮助。

我有一个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(我的学生类构造函数详细信息在上面)。

感谢您的帮助。

1 个答案:

答案 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();