簡體   English   中英

如何解析csv文件並在java bean類中存儲數據

[英]How to parse a csv file and store datails in java bean class

我需要解析一個csv文件並將數據存儲到java bean類中。 喜歡:

email,fname,lname
imr@gmail.com,abc,xyz

這些細節變成了bean類。 我能夠解析一個csv文件。 如何在bean類中存儲細節。

private static List<List<String>> readTXTFile(String csvFileName) throws IOException {

     String line = null;
    BufferedReader stream = null;
    List<List<String>> csvData = new ArrayList<List<String>>();

    try {
        stream = new BufferedReader(new FileReader(csvFileName));
        while ((line = stream.readLine()) != null) {
            String[] splitted = line.split(",");
            List<String> dataLine = new ArrayList<String>(splitted.length);
            for (String data : splitted)
                dataLine.add(data);
            csvData.add(dataLine);
        }
    } finally {
        if (stream != null)
            stream.close();
    }

    return csvData;

}

上面的代碼是解析csv文件,但我希望將數據插入到java bean類中。

創建POJO

private class Data{//You can make it public too, in a separate class
    String email;
    String fname;
    String lname;

    //Getters

    //Setters
}

在您的原始課程中,您可以像這樣使用

List<Data> datas = new ArrayList<Data>();
try {
    stream = new BufferedReader(new FileReader(csvFileName));
    while ((line = stream.readLine()) != null) {
        String[] splitted = line.split(",");
        Data data = new Data();
        data.setEmail(splitted[0]);
        data.setFname(splitted[1]);
        data.setLname(splitted[2]);

        datas.add(data);
    }
} 

您將在arraylist中擁有所有行。 您可以進行空檢查以提高效率。

使用OpenCSV

寫作

        CSVWriter writer = new CSVWriter(new FileWriter("myfile.csv"), ',');
        String[] headers = {"id","name","address"};
        writer.writeNext(headers);

閱讀(在bean內部設置並添加到列表中的示例)

USER_ID_INDEX等是常量

    CSVReader reader = new CSVReader(new InputStreamReader(userManActionForm.getUploadFile().getInputStream()));
    List<String[]> entries = reader.readAll();
    List<Member> memberList = new ArrayList<Member>();
        for (String[] entry : entries) {
            Member member = new Member();
            member.setUserId(entry[USER_ID_INDEX]);
            member.setUserName(entry[USER_NAME_INDEX]);
            member.setGroup(entry[USER_GROUP_INDEX]);
            memberList.add(member);
        }

https://code.google.com/p/opencsv/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM