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):

 package com.test.csv;

 import com.csvreader.CsvReader;
import java.io.IOException;
import java.nio.charset.Charset; public class demo {
public static void main(String[] args) {
String file = "src/com/test/csv/test.csv"; try {
// 创建CSV读对象(文件路径,分隔符,编码格式)
CsvReader csvReader = new CsvReader(file, ',', Charset.forName("UTF-8")); // 跳过表头 如果需要表头的话,这句可以忽略
csvReader.readHeaders(); // 可以理解为把第一行设置为标题,如果不设置,将无法使用getHeaders()、get("id") while (csvReader.readRecord()){
// 读一整行
System.out.println(csvReader.getRawRecord()); } // 关闭
csvReader.close(); } catch (IOException e) {
e.printStackTrace();
} }
}

截图:

3.相关函数

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

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

// 1.获取标题,返回时String数组
csvReader.getHeaders(); // 输出
for(String s : headerList){
System.out.println(s);
}

(2)获取列数

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

JavaCSV之读CSV文件的更多相关文章

  1. JavaCSV之写CSV文件

    与JavaCSV读CSV文件相对应,JavaCSV也可以用来写数据到CSV文件中. 1.准备工作 (1)第三方包库下载地址:https://sourceforge.net/projects/javac ...

  2. 用python3读CSV文件,出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid con

    使用pd.read_csv()读csv文件时,出现如下错误: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position ...

  3. pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot

    简单的代码,利用pandas模块读csv数据文件,这里有两种方式,一种是被新版本pandas遗弃的Series.from_csv:另一种就是pandas.read_csv 先说一下问题这个问题就是在读 ...

  4. 读CSV文件并写arcgis shp文件

    一.在这里我用到的csv文件是包含x,y坐标及高程.降雨量数据的文件.如下图所示. 二.SF简介 简单要素模型(Simple Feature,SF),是 OGC 国际组织定义的面向对象的矢量数据模型. ...

  5. 读CSV文件

    /// <summary> /// 读取csv文件 /// </summary> /// <param name="csvPath">strin ...

  6. 用python3读csv文件出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte

    1.python3读取csv文件时报如下图所示的错误 2.分析原因:读取的csv文件不是 UTF8 编码的,而IDE工具默认采用 UTF8 解码.解决方法是修改源文件的解码方式. 3.使用nodepa ...

  7. python 读csv文件对列名进行合法性验证

    如果正在读取CSV 数据并将它们转换为命名元组,需要注意对列名进行合法性认证.例如,一个CSV 格式文件有一个包含非法标识符的列头行,这样最终会导致在创建一个命名元组时产生一个ValueError 异 ...

  8. python 读csv文件时,在csv类型上执行类型转换

    csv 产生的数据都是字符串类型的,它不会做任何其他类型的转换.如果需要做这样的类型转换,必须自己手动去实现 import csv,re from collections import namedtu ...

  9. PLSQL_PLSQL读和写CSV文件方式(案例)

    2012-01-06 Created By BaoXinjin

随机推荐

  1. MySql csv文件导入导出

    一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...

  2. e554. 在浏览器状态栏中显示信息

    // See also e551 精简的Applet applet.showStatus("Your Message Here"); Related Examples

  3. e556. 在程序中播放音频

    try { URL url = new URL("http://hostname/audio.au"); AudioClip ac = Applet.newAudioClip(ur ...

  4. 【Java面试题】3 Java的"=="和equals方法究竟有什么区别?简单解释,很清楚

    ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符. 如果一个变量指向的数据是对象类型的 ...

  5. kafka学习之-深入研究原理

    参考博客: http://www.cnblogs.com/fxjwind --阿里牛人 http://blog.csdn.net/lizhitao/article/details/41778193   ...

  6. Unity3D使用经验总结 编辑器扩展篇【转】

    一个引擎,最重要的就是工具,工具除了提升开发速度,提供可视化操作环境以外,还带了容错功能. 它使得大家的工作局限在一定的范围内,比如一个变量的配置,或者是一些类型的选择. 使用编辑器,使得既使不太明白 ...

  7. VC++ ToolTip的简单使用

    1.在基于对话框的MFC应用程序中使用Tooltip,首先在Dlg类的头文件中定义一个变量: CToolTipCtrl m_iToolTips; 2.在Dlg类的OnInitDialog中添加代码: ...

  8. linux环境中查看主机型号(机器型号)

    需求说明: 今天一同事让统计测试环境主机型号,在此记录下. 操作过程: 1.通过dmidecode工具查询,产品型号(机器型号) [root@redhat6 ~]# dmidecode | grep ...

  9. IOS -执行时 (消息传递 )

    一 函数调用概述      Objective-C不支持多重继承(同Java和Smalltalk),而C++语言支持多重继承. Objective-C是动态绑定,它的类库比C++要easy操作. Ob ...

  10. 把Excel中的数据转换成Sql语句

    假如excel表格中有A.B.C三列数据,希望导入到数据库users表中,相应的字段各自是name,sex,age ,在你的excel表格中添加一列.利用excel的公式自己主动生成sql语句,方法例 ...