public class CSVItem{
public String[] item ;
CSVItem(int size){
item = new String[size];
}
}
CSVItem是每个csv文件的一个元素,每个元素放在item数组里面
public class CSVReader {
public int size;
public CSVItem[] importCSV(String fileName) throws IOException {
File file = new File(fileName);
ArrayList<String> list = new ArrayList<>();
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line;
while ((line = bufferedReader.readLine()) != null){
list.add(line);
}
int length = list.size();
bufferedReader.close();
int width = list.get(0).split(",").length;
size = width;
String[][] values = new String[width][length];
for (int i = 0; i < length; i++) {
values[i] = list.get(i).split(",");
}
CSVItem[] items = new CSVItem[width];
for (int i = 0; i < width; i++){
items[i] = new CSVItem(length+1);
for (int j = 0; j < length; j++) {
items[i].item[j] = values[j][i];
}
}
return items;
}
}
CSVReader返回一个CSVItem数组,文件的数据就放在此数组里了
public class CSVWriter {
private int cal = 0;
private final CSVItem[] items;
private final int itemSize;
CSVWriter(int itemSize,int itemNums){
items = new CSVItem[itemNums];
this.itemSize = itemSize;
}
public void WriteExportCSVBuffer(CSVItem item){
items[cal] = item;
cal++;
}
public void ExportCSVFile(String filename) throws Exception {
File file = new File(filename);
String[] strings = new String[itemSize];
for (int i = 0; i < strings.length; i++) {
strings[i] = "";
for (CSVItem item : items) {
strings[i] = strings[i].concat(item.item[i] + ",");
}
}
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (String string : strings) {
bufferedWriter.write(string + "\n");
}
bufferedWriter.close();
fileWriter.close();
}
}
CSVWriter和CSVReader的使用方法如下面的例程:
class main{
public static void main(String[] args) throws Exception {
CSVItem[] items = csvReader.importCSV("inputFileName");
CSVWriter csvWriter = new CSVWriter(3,5);//3 是每个item的数据个数,5是总共用多少个item
需要写入
for (CSVItem i : items){
System.out.println(i.item[0] + " " + i.item[1] + " " + i.item[2] );
}
for (int i = 0; i < 5; i++) {
CSVItem item = new CSVItem(3);
item.item[0] = "1";
item.item[1] = "2";
item.item[2] = "3";
csvWriter.WriteExportCSVBuffer(item);
}
csvWriter.ExportCSVFile("output.csv");
}
}