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) {
File inFile = new File(readpath);
try {
BufferedReader reader = new BufferedReader(new FileReader(inFile));
while (reader.ready()) {
String line = reader.readLine();
String[] splitline = line.split(",");
int Dim = splitline.length;
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());
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();
}
}
}

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)