JavaCSV之读CSV文件

Java在进行数据处理,有时候难免有进行CSV文件的操作,这里采用了JavaCSV读CSV文件。

1.准备工作

(1)第三方包库下载地址:https://sourceforge.net/projects/javacsv

(2)相关文档:http://javacsv.sourceforge.net/

2.使用简单的读操作

(1)引入javacsv包

import com.csvreader.CsvReader;

(2)创建文件路径

String file = "src/com/test/csv/test.csv"; // 注意路径,这里是相对路径

(3)创建CSV读对象

// 创建CSV读对象(文件路径,分隔符,编码格式)
CsvReader csvReader = new CsvReader(file, ‘,‘, Charset.forName("UTF-8"));

(4)设置标题(非常重要),可以理解为把第一行设置为标题,如果不设置,csvReader.readRecord()将从标题行开始读取,因此有关标题、列的函数将无法使用,如getHeaders()、get("字段名")

csvReader.readHeaders();

(5)读取

while (csvReader.readRecord()){
    // 读一整行
    System.out.println(csvReader.getRawRecord());
    // 读某一列
    System.out.println(csvReader.get("id"));
}

(6)关闭

// 关闭
 csvReader.close();

csv文件(test.csv):

测试(demo.java):

 1 package com.test.csv;
 2
 3 import com.csvreader.CsvReader;
 4 import java.io.IOException;
 5 import java.nio.charset.Charset;
 6
 7 public class demo {
 8     public static void main(String[] args) {
 9         String file = "src/com/test/csv/test.csv";
10
11         try {
12             // 创建CSV读对象(文件路径,分隔符,编码格式)
13             CsvReader csvReader = new CsvReader(file, ‘,‘, Charset.forName("UTF-8"));
14
15             // 跳过表头 如果需要表头的话,这句可以忽略
16             csvReader.readHeaders(); // 可以理解为把第一行设置为标题,如果不设置,将无法使用getHeaders()、get("id")
17
18             while (csvReader.readRecord()){
19                 // 读一整行
20                 System.out.println(csvReader.getRawRecord());
21
22             }
23
24             // 关闭
25             csvReader.close();
26
27         } catch (IOException e) {
28             e.printStackTrace();
29         }
30
31     }
32 }    

截图:

3.相关函数

查看:http://javacsv.sourceforge.net/

(1)获取标题,返回时String数组

// 1.获取标题,返回时String数组
csvReader.getHeaders();

// 输出
for(String s : headerList){
     System.out.println(s);
}

(2)获取列数

// 获取列数
csvReader.getHeaderCount();


原文地址:https://www.cnblogs.com/xiaomingzaixian/p/9744992.html

时间: 2024-08-01 18:22:51

JavaCSV之读CSV文件的相关文章

JavaCSV之写CSV文件

与JavaCSV读CSV文件相对应,JavaCSV也可以用来写数据到CSV文件中. 1.准备工作 (1)第三方包库下载地址:https://sourceforge.net/projects/javacsv (2)相关文档:http://javacsv.sourceforge.net/ 2.使用简单的读操作 (1)引入javacsv包相应的类 import com.csvreader.CsvWriter; (2)创建文件路径 String file = "src/com/xiaoming/csv/

C# 读CSV文件

近期都在处理淘宝商品数据包识别问题,满以为CSV文件就是以行为分割,以逗号为字段分割的文件体系. 自己在编写处理程序时,增加了2个参数: 第一个,字符集,第二,告知处理方法,文件的列在第几行. 同时,对某些生成出来的数据包不规据的,例如生成出2个同名列的,等等文件,做了一定的容错. 满以为这样就OK了,没想到,老革命遇上新问题.原来 CSV文件中还是有转义的,引号即是.这一个处理,导致 程序出现了严重BUG,有一批数据包无法识别.... 现程序已经优化过.本CSV阅读程序,直接将CSV文件转换成

C++读CSV文件,处理数据

//读写 #include "global.h"#include <iostream>#include <fstream>        //读取文件数据的函数fin的头文件#include <sstream>        //istringstream 必须包含这个头文件 using namespace std;        using std::ofstream;vector<AQIvalue> allSites;vector&l

python读csv文件中文汉字出现UnicodeDecodeError

出错代码:data = pd.read_csv(fname); 原因:byte 0xcb不能被解码成utf-8编码: 解决方法:指定使用gbk编码 data = pd.read_csv(fname, encoding='gbk'); 原文地址:https://www.cnblogs.com/HITSZ/p/8688616.html

如何通过 JavaCSV 类库来优雅地(偷懒)读写 CSV 文件?

欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! 个人博客: https://www.exception.site/essay/how-to-create-read-csv-by-javacsv 一.背景 小哈公司最近准备开发一套新的平台,具体什么平台,因为涉密,这里就不透露了.平台在最终的的技术选型中,其中主要依赖的技术栈是 Apache Flink, 一款 Apache 基金会开源的流处理框架,平台的核心业务都会交给 Flink 去处理,其中包括离线批量任

读写CSV文件

准备:需要引用javacsv.jar 读CSV publicvoid readCsv()throws IOException { ArrayList<String[]> csvList = newArrayList<String[]>(); String csvFilePath = sourcePath; CsvReader reader = newCsvReader(csvFilePath,',', Charset.forName("SJIS")); read

CSV文件读取,解决汉字乱码

public String getDeptOuId(String openId) throws IOException { String deptId = ""; // 存储信息的文件的绝对路径  String csvPath = FileUtil.getWorkingPath()  .resolve(ConfigUtil.getConfig().get("idmappings")).toString(); System.out.print(csvPath); //

springbatch操作CSV文件

一.需求分析 使用Spring Batch对CSV文件进行读写操作: 读取一个含有四个字段的CSV文件(id, name, age, score), 对文件做简单的处理, 然后输出到另一个csv文件中. 二.代码实现 1. 代码结构图: JobLaunch: 启动Job CsvItemProcessor: 对Reader数据进行处理 Student: 实体对象 input.csv: 数据读取文件 output.csv: 数据输出文件 2. applicationContext.xml <?xml

Python-csv模块读写csv文件

import csv # 采用DictReader进行读写: # 读csv文件def get_data(self, from_file): test_data = [] with open(from_file, 'rb') as csv_file: csv.register_dialect('read', delimiter='\t', quoting=csv.QUOTE_NONE) reader = csv.DictReader(csv_file, dialect='read') for ro