Java 如何将CSV文件打印到ArrayList?

Java 如何将CSV文件打印到ArrayList?,java,csv,arraylist,sequential,Java,Csv,Arraylist,Sequential,这是我的密码 package sequentialFilePractice; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.logging.Level; import

这是我的密码

package sequentialFilePractice;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ReadFile{

static String line = "";

ReadFile() throws FileNotFoundException{
    readTheFile();
    CSVtoArrayList();
}

public String readTheFile() throws FileNotFoundException{
    String csvFile = "H:\\S6\\AH Computing\\Java Practice\\test.csv";
    BufferedReader br = null;
    String cvsSplitBy = ",";

    try {

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {


        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return line;


}

public static ArrayList<String> CSVtoArrayList() {
    ArrayList<String> splitCSV = new ArrayList<>();

    if (line != null) {
        String[] splitData = line.split("\\s*,\\s*");
        for (int i = 0; i < splitData.length; i++) {
            if (!(splitData[i] == null) || !(splitData[i].length() == 0)) {
                splitCSV.add(splitData[i].trim());
            }
        }
    }

    for(int j = 0;j < splitCSV.size();j++){
        System.out.println(splitCSV.get(j));
    }
        return splitCSV;
    }

public static void main(String[]args) throws IOException{
    ReadFile f = new ReadFile();
}
}
包顺序文件实践;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.logging.Level;
导入java.util.logging.Logger;
公共类读取文件{
静态字符串行=”;
ReadFile()引发FileNotFoundException{
readTheFile();
CSVtoArrayList();
}
公共字符串readTheFile()引发FileNotFoundException{
String csvFile=“H:\\S6\\AH Computing\\Java Practice\\test.csv”;
BufferedReader br=null;
字符串cvsSplitBy=“,”;
试一试{
br=新的BufferedReader(新的文件读取器(csvFile));
而((line=br.readLine())!=null){
}
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}最后{
如果(br!=null){
试一试{
br.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
回流线;
}
公共静态数组列表CSVtoArrayList(){
ArrayList splitCSV=新的ArrayList();
如果(行!=null){
String[]splitData=line.split(\\s*,\\s*);
对于(int i=0;i

代码已编译,文件已存在。我可以打印行,它打印文件的内容,但是当我打印arrayList时,没有输出任何内容,所以它没有被复制。这是我第一次在java中使用顺序文件。

您必须手动读取文件吗?如果没有,您应该检查一下,它允许您将CSV直接读取到
列表中
,而不必处理循环、拆分行和创建列表的管理

本质上,将代码简化为:

CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
List myEntries = reader.readAll();

我没有读过代码,但您无法打印到
ArrayList
。您的意思是将
ArrayList
打印到CSV文件中吗?或者将CSV文件读入
阵列列表
?一旦读入
,您就不会对其进行任何操作。您应该使用类似于
line.split(cvsSplitBy)
的方法从中获取值。(顺便提一下,这是一种非常简单的读取CSV文件的方法)@Michael抱歉,措辞不好。我想将csv的内容读入arraylist,然后将arraylist的内容打印到控制台。@Stik我有以下行字符串[]splitData=line.split(“\\s*,\\s*”);您不能只是将代码的某些部分剪切粘贴到其他地方,然后期望它自己调用…:)从while循环内部调用
csvToaryList()
方法,进行必要的更改,或者将其放回原来的位置