java讀取寫入CSV文件
覺得有用的話,歡迎一起討論相互學習~




讀取CSV文件中的數據示例一
public void test() {
readValues(OutputfilePath, Valueslist);
for (int i = 0; i < Valueslist.size(); i++) {
for (int j = 0; j <Valueslist.get(0).length; j++) {
System.out.print(Valueslist.get(i)[j]+" ");
}
System.out.println();
}
}
public void readValues(String readpath, ArrayList<Double[]> Valueslist) {
//想要讀取的數據是一個[N,Dim]的二維矩陣
File inFile = new File(readpath);
try {
BufferedReader reader = new BufferedReader(new FileReader(inFile));
while (reader.ready()) {
//這里沒有辦法使用矩陣進行操作,因為我們一行一行的讀沒有辦法知道csv中保存數據的長度和寬度
//但是返回的是一個String,我們可以對這個String進行操作,按照分隔符將其分割,最好能是能夠保存到一個完整的結構中
String line = reader.readLine();
String[] splitline = line.split(",");
//這里每一列的元素都是一個double數值,例如
//因此接下來我能夠直接的轉換成Double類型的變量
int Dim = splitline.length;
//將splitline中的每個元素保存到double類型的數組中
Double[] temp = new Double[Dim];
for (int i = 0; i < Dim; i++) {
temp[i] = Double.valueOf(splitline[i]);
}
Valueslist.add(temp);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
讀取CSV文件中的數據示例二
- 示例二維讀取一個N行兩列的逗號分隔的二維數字字符串混合的csv文件

import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class readCSV {
void readCSV(String readpath, ArrayList Nolist, ArrayList Dnalist) {
File inFile = new File(readpath);
try {
BufferedReader reader = new BufferedReader(new FileReader(inFile));
//判斷是否到達文件末尾
while (reader.ready()) {
String line = reader.readLine();
//返回一個","分隔的迭代器
//這種方法不是很好,建議還是使用示例一中的方法
StringTokenizer st = new StringTokenizer(line, ",");
int NO;
String DNAsequence;
if (st.hasMoreTokens()) {
NO = Integer.valueOf(st.nextToken().trim());
DNAsequence = String.valueOf(st.nextToken().trim());
//使用ArrayList接收數據
Nolist.add(NO);
Dnalist.add(DNAsequence);
}
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
將數據保存為csv格式
package Readcsv_testV0;
import java.io.*;
import java.util.ArrayList;
public class OutputCSV {
public static void writeCSV(ArrayList<String []> DNA, ArrayList<Double> Con, ArrayList<Double> Hp, ArrayList<Double> Hm, ArrayList<Double> Si, ArrayList<Double> Tm, ArrayList<Double> GC, String path) {
try {
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), "UTF-8"));
for (int i = 0; i < DNA.size(); i++) {
out.write(DNA.get(i)[0]);
out.write(",");
out.write(DNA.get(i)[1]);
out.write(",");
out.write(Con.get(i).toString());
out.write(",");
out.write(Hp.get(i).toString());
out.write(",");
out.write(Hm.get(i).toString());
out.write(",");
out.write(Si.get(i).toString());
out.write(",");
out.write(Tm.get(i).toString());
out.write(",");
out.write(GC.get(i).toString());
out.newLine();
}
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
