[英]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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.