Java读取和写入CSV文件工具类(Bean)
1、工具类CsvUtils.java
package com.ciphergateway.utils;
import com.ciphergateway.csvData;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CsvUtils {
public static BufferedReader reader;
public static BufferedWriter bw;
public static int linkNumber;
public static void closeAll() {
try {
if(reader != null)
reader.close();
if(bw != null)
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static List> readCSVFileData(String filePath){
List> dataList=new ArrayList<>();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
}catch(FileNotFoundException | UnsupportedEncodingException e){
e.printStackTrace();
}
try{
String line=null;
while ((line=reader.readLine())!=null){
String aa[]=line.split(",");
List cellList= Arrays.asList(aa);
//System.out.println(cellList);
dataList.add(cellList);
}
closeAll();
} catch (Exception e) {
e.printStackTrace();
}
return dataList;
}
public static List readData(String filePath){
List> dataList=readCSVFileData(filePath);
System.out.println(dataList);
List csvList=new ArrayList<>();
for(int i = 0; i
if(i !=0) {
csvData data=new csvData();
data.setId(Integer.parseInt(dataList.get(i).get(0)));
data.setName(dataList.get(i).get(1));
data.setAge(Integer.parseInt(dataList.get(i).get(2)));
csvList.add(data);
}
}
return csvList;
}
public static void writeCSVFileData(String filePath, csvData data){
try {
bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath, true), "UTF-8"));
if(linkNumber==0){
bw.write("编号"+","+"姓名"+","+"年龄");
bw.newline();
++linkNumber;
}
bw.write(data.getId()+","+data.getName()+","+data.getAge());
bw.newline();
bw.flush();
closeAll();
} catch (Exception e) {
closeAll();
e.printStackTrace();
System.exit(0);
}
}
}
2、实体类csvData.java
package com.ciphergateway.utils;
import com.ciphergateway.csvData;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CsvUtils {
public static BufferedReader reader;
public static BufferedWriter bw;
public static int linkNumber;
public static void closeAll() {
try {
if(reader != null)
reader.close();
if(bw != null)
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static List> readCSVFileData(String filePath){
List> dataList=new ArrayList<>();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
}catch(FileNotFoundException | UnsupportedEncodingException e){
e.printStackTrace();
}
try{
String line=null;
while ((line=reader.readLine())!=null){
String aa[]=line.split(",");
List
//System.out.println(cellList);
dataList.add(cellList);
}
closeAll();
} catch (Exception e) {
e.printStackTrace();
}
return dataList;
}
public static List
List> dataList=readCSVFileData(filePath);
System.out.println(dataList);
List
for(int i = 0; i if(i !=0) { csvData data=new csvData(); data.setId(Integer.parseInt(dataList.get(i).get(0))); data.setName(dataList.get(i).get(1)); data.setAge(Integer.parseInt(dataList.get(i).get(2))); csvList.add(data); } } return csvList; } public static void writeCSVFileData(String filePath, csvData data){ try { bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath, true), "UTF-8")); if(linkNumber==0){ bw.write("编号"+","+"姓名"+","+"年龄"); bw.newline(); ++linkNumber; } bw.write(data.getId()+","+data.getName()+","+data.getAge()); bw.newline(); bw.flush(); closeAll(); } catch (Exception e) { closeAll(); e.printStackTrace(); System.exit(0); } } }
这里示例有3个字段:id,name,age
package com.ciphergateway;
public class csvData {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
data.csv数据
3、执行类
import java.util.ArrayList;
import java.util.List;
import com.ciphergateway.csvData;
import com.ciphergateway.utils.CsvUtils;
public class ReadFileTest {
public static void main(String[] args) {
//读取
List csvList=CsvUtils.readData("./data.csv");
for (int i=0;i
System.out.println(csvList.get(i).getId()+" "+csvList.get(i).getName()+" "+csvList.get(i).getAge());
}
//写入
List csvList2=new ArrayList<>();
csvData a1=new csvData();
a1.setId(1);
a1.setName("张三");
a1.setAge(25);
csvList2.add(a1);
csvData a2=new csvData();
a2.setId(2);
a2.setName("李四");
a2.setAge(30);
csvList2.add(a2);
for (csvData data:csvList2) {
//System.out.println(data.getId()+" "+data.getName()+" "+data.getAge());
CsvUtils.writeCSVFileData("./result.csv", data);
}
}
}
import java.util.ArrayList;
import java.util.List;
import com.ciphergateway.csvData;
import com.ciphergateway.utils.CsvUtils;
public class ReadFileTest {
public static void main(String[] args) {
//读取
List
for (int i=0;i System.out.println(csvList.get(i).getId()+" "+csvList.get(i).getName()+" "+csvList.get(i).getAge()); } //写入 List csvData a1=new csvData(); a1.setId(1); a1.setName("张三"); a1.setAge(25); csvList2.add(a1); csvData a2=new csvData(); a2.setId(2); a2.setName("李四"); a2.setAge(30); csvList2.add(a2); for (csvData data:csvList2) { //System.out.println(data.getId()+" "+data.getName()+" "+data.getAge()); CsvUtils.writeCSVFileData("./result.csv", data); } } }
执行结果:



