前段时间写的一个解析CSV文件,处理数据的功能

第一次遇到需要解析CSV文件的需求,遂记录一下,以备后用。若有幸能为其他人带来帮助,那实在是我的荣幸。

代码正文:

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.PathUtil;
import cn.hutool.core.text.csv.CsvParser;
import cn.hutool.core.text.csv.CsvReadConfig;
import cn.hutool.core.text.csv.CsvRow;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

class  CsvFileReader {

public static void main(String[] args) {
    String path = "D:\\file\\abc.csv";
    File file = FileUtil.file(path);
    BufferedReader reader = PathUtil.getReader(file.toPath(), StandardCharsets.UTF_8);
    CsvReadConfig csvReadConfig = new CsvReadConfig().setHeaderLineNo(0L);
    CsvParser csvParser = new CsvParser(reader, csvReadConfig);
    try {
        while (csvParser.hasNext()) {
            // 加工处理数据
            CsvRow next = csvParser.next();
            Map<String, String> fieldDataMap = next.getFieldMap();
              //业务数据处理
            SyncTreatyInfoReq req = CompanyCulumnConvertEunm.convert(fieldDataMap);
            SyncEmployeeInfoList employeeInfoList = EmployeeCulumnConvertEunm.convert(fieldDataMap);
            SyncTreatyInfoList treatyInfoList = TreatyCulumnConvertEunm.convert(fieldDataMap);
            req.setEmployeeInfoList(Arrays.asList(employeeInfoList));
            req.setTreatyInfoList(Arrays.asList(treatyInfoList));
            SyncTreatyInfoResp syncTreatyInfoResp = accountSignController.syncTreatyInfo(req);
            log.info("同步数据结果:" + JSON.toJSONString(syncTreatyInfoResp));
        }
        try {
            csvParser.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Java 库中的类来读取 CSV 文件,然后从中提取前十行数据,并使用图形库绘制折现图。 以下是一个简单的示例,使用 Java 的 CSV 解析库 Apache Commons CSV 和 JavaFX 库绘制折现图: ``` import java.io.FileReader; import java.io.IOException; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.stage.Stage; public class CSVLineChart extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws IOException { stage.setTitle("CSV Line Chart"); final NumberAxis xAxis = new NumberAxis(); final NumberAxis yAxis = new NumberAxis(); xAxis.setLabel("X Value"); yAxis.setLabel("Y Value"); final LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis); Scene scene = new Scene(lineChart, 800, 600); lineChart.setTitle("CSV Line Chart Example"); XYChart.Series<Number, Number> series = new XYChart.Series<>(); series.setName("Data from CSV"); FileReader fileReader = new FileReader("data.csv"); CSVParser csvParser = new CSVParser(fileReader, CSVFormat.DEFAULT); int count = 0; for (CSVRecord csvRecord : csvParser) { if (count == 10) { break; } double x = Double.parseDouble(csvRecord.get(0)); double y = Double.parseDouble(csvRecord.get(1)); series.getData().add(new XYChart.Data<>(x, y)); count++; } lineChart.getData().add(series); stage.setScene(scene); stage.show(); } } ``` 这段代码读取了名为 "data.csv" 的 CSV 文件,并使用 JavaFX 库绘制了一个折现图。每当读取到一行数据时,它将
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值