所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。 我们使用SuperCSV来解析CSV文件, Super
CSV是一个用于处理CSV文件的Java开源项目。它完全围绕面向对象的思想进行设计,因此可以利用你的面向对象代码来使得处理CSV文件变得更加简
易。它支持输入/输出类型转换、数据完整性校验,支持从任何地方以任何编码读写数据,只要提供相应的Reader与Writer对象。可配置分割符,空格
符号和行结束符等。
1. 环境
jdk1.6
SuperCSV-1.52.jar
2. 代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.supercsv.io.CsvListReader;
import org.supercsv.prefs.CsvPreference;
public class CsvParser implements Iterator<List<String>>{
private static final Logger logger = Logger.getLogger(CsvParser.class);
private CsvListReader reader = null;
private List<String> row = null;
public CsvParser(String csvFile, String encoding) {
super();
try {
reader = new CsvListReader(new InputStreamReader(new FileInputStream(csvFile), encoding), CsvPreference.EXCEL_PREFERENCE);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(), e);
} catch (FileNotFoundException e) {
logger.error(e.getMessage(), e);
}
}
public boolean hasNext(){
try {
if(reader.getLineNumber() == 0){//
row = reader.read();
}
row = reader.read();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return row != null;
}
public List<String> next(){
return row;
}
public void remove(){
throw new UnsupportedOperationException("本CSV解析器是只读的.");
}
public void close(){
if(reader != null){
try {
reader.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
/**
* 当前行号,从1开始
* @return int
*/
public int getLineNumber(){
return reader.getLineNumber() - 1;
}
}
3. 测试代码
String file = "D:\\test.csv";
CsvParser p = new CsvParser(file, "GBK");
while(p.hasNext()){
List<String> row = p.next();
System.out.println(p.getLineNumber() + " : " + row.get(0) + ", " + row.get(1));
}
p.close();
分享到:
相关推荐
在描述中提到的"CSVparser类"可能是项目中自定义的一个类,用于读取和解析CSV文件。通常,这个类会逐行读取文件,然后根据逗号分隔符分割每一行,将数据存储在某种结构(如QStringList或std::vector)中。 接下来,...
Java中,可以使用OpenCSV或者Apache Commons CSV库来解析CSV文件。解析过程通常包括打开文件、创建解析器、迭代读取每一行,然后将每一行的数据转换为所需的数据结构,如列表或对象实例。 3. 多文件下载与并发处理...
在JavaScript环境中,处理CSV文件时,我们常常需要将其内容转化为JavaScript对象或者数组,以便进一步的数据处理和分析。 Papa Parse是一个强大的JavaScript库,专门用于快速、高效地解析和生成CSV数据。这个插件...
本篇将详细介绍如何在Java中解析CSV文件,并以给定的"Java解析CSV文件"主题为例,结合提供的资源——`lucky_number_format.csv`、`javacsv-2.0.jar`和`CsvUtil.java`进行深入探讨。 首先,我们来看`javacsv-2.0.jar...
在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...
本篇文章将详细探讨如何在Java中解析CSV文件,并解决中文乱码的问题。 首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines...
虽然这个实现较为基础,但它展示了手动解析CSV文件的基本思路。 标签“源码”和“工具”暗示了本文可能会涉及编写自己的CSV处理代码或者讨论现有的CSV处理工具。无论是编写自己的解析器还是利用现有库,理解CSV文件...
在这部分文件内容中,我们首先看到了对Spark解析CSV文件并存入数据库的一个简单介绍。接下来,会逐步展开几个重要知识点,包括Spark框架的基础、如何使用Spark读取和解析CSV文件、数据处理的相关操作以及如何将处理...
本篇文章将详细探讨如何使用纯JavaScript解析CSV文件,并将其内容转换为HTML表格。 首先,让我们了解CSV文件的基本结构。CSV文件由行组成,每行由一个或多个字段组成,字段之间用逗号分隔。在某些情况下,如果字段...
在解析CSV文件获取所需信息时,通常涉及以下知识点: 1. **文件读取**:首先,你需要使用编程语言提供的文件操作函数打开CSV文件。例如,在Python中,可以使用内置的`open()`函数以读取模式打开文件,然后使用`csv`...
在Java中,处理CSV文件通常需要借助第三方库,如本案例中的`javacsv`库,版本2.1。这个库提供了一系列方法来帮助我们方便地解析和生成CSV数据。 `javacsv`库由Jonathan Leffler开发,它允许开发者通过简单的API读取...
以下是一个简单的Java程序示例,演示如何读取并解析CSV文件。 首先,我们需要了解CSV文件的基本结构。CSV文件是由行和列组成的数据文件,每一行代表一个记录,列之间用逗号分隔。在这个例子中,我们有一个包含三列...
`javacsv`库是处理CSV文件的一种工具,特别是`CsvReader`类,它提供了方便的方法来读取和解析这些文件。 `CsvReader`是`javacsv`库中的核心类,用于读取CSV文件并将其内容转换为Java对象。这个库由`csv`和`java`...
本主题主要关注使用`InputStream`类来解析CSV文件,尤其适合处理大型文件,如含有超过10万行的CSV。 在Java中,`InputStream`是所有字节输入流的基础类,用于读取连续的字节序列。在处理大型CSV文件时,直接使用`...
解析CSV文件的主要挑战在于处理各种边缘情况,例如: 1. **字段内包含逗号**:当某个字段值本身含有逗号时,通常会用双引号将其包围,例如 `"New York, NY"`。 2. **字段内包含换行符**:类似地,如果字段内有换行...
一个简单的python解析CSV文件处理
解析CSV的基本步骤如下: 1. 创建CSVReader,传入文件流或文件路径。 2. 使用`readNext()`方法逐行读取CSV数据。 3. 分割每行数据,根据逗号或其他分隔符提取字段。 4. 同样地,将这些字段映射到Java Bean。 映射...
了解如何有效地读取和解析CSV文件是每个Java开发者必备的技能之一,这将有助于你在处理大量数据时更加游刃有余。在使用过程中如果遇到任何问题,不要犹豫,大胆提问,社区的力量会帮你找到答案。
CsvHelper 是一个强大的开源库,专门用于在 .NET 应用程序中解析和写入 CSV 文件。这个库的最新版本是 30.0.1,它为 Unity 开发者提供了一种简单、高效的手段来处理 CSV 数据。CSV(Comma Separated Values)是一种...