java csv 单元格格式_Java读写CSV格式的文件

本文介绍如何使用Java读取和写入CSV文件。提供了读取CSV文件的代码,通过BufferedReader逐行读取并解析,将数据存储到CsvData对象中;还展示了写入CSV文件的方法,先创建文件头,然后将数据列表写入文件,每条记录以制表符分隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读取CSV文件

/**

* 读取 CSV 文件

*

* @return

*/

public static LinkedList readCSV(String path) {

LinkedList list = new LinkedList<>();

BufferedReader reader = null;

try {

FileInputStream fis = new FileInputStream(path);

InputStreamReader isr = new InputStreamReader(fis, "GBK");

reader = new BufferedReader(isr);

String line;

while ((line = reader.readLine()) != null) {

String[] rows = line.split(",");

CsvData info = new CsvData();

info.setColumn1(rows.length > 0 ? rows[0] : null);

info.setColumn2(rows.length > 1 ? rows[1] : null);

info.setColumn3(rows.length > 2 ? rows[2] : null);

info.setColumn4(rows.length > 3 ? rows[3] : null);

info.setColumn5(rows.length > 4 ? rows[4] : null);

list.add(info);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

if (!list.isEmpty()) {

// 移除 CSV 首行标题

list.remove(0);

}

return list;

}

CsvData.java

public class CsvData {

private String column1;

private String column2;

private String column3;

private String column4;

private String column5;

// 生成 Getter 和 Setter

}

写入CSV文件

/**

* 写入 CSV 文件

*

* @return

*/

public static void writeCsv(List dataList, String filePath) {

CsvData header = new CsvData();

header.setColumn1("列1");

header.setColumn2("列2");

header.setColumn3("列3");

header.setColumn4("列4");

header.setColumn5("列5");

dataList.add(0, header);

try {

FileOutputStream fos = new FileOutputStream(new File(filePath));

OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");

BufferedWriter bw = new BufferedWriter(osw);

for (CsvData data : dataList) {

String line = data.getColumn1() + ","

+ data.getColumn2() + ","

+ data.getColumn3() + ","

+ data.getColumn4() + ","

+ data.getColumn5();

bw.write(line + "\t\n");

}

bw.close();

osw.close();

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值