×

csv文件按行解析

csv文件按行解析(csvfile)

admin admin 发表于2023-03-27 04:07:08 浏览46 评论0

抢沙发发表评论

本文目录一览:

如何正确读取csv文件

package xufei;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/*

* 文件规则

* Microsoft的格式是最简单的。以逗号分隔的值要么是“纯粹的”(仅仅包含在括号之前),

* 要么是在双引号之间(这时数据中的双引号以一对双引号表示)。

* Ten Thousand,10000, 2710 ,,"10,000","It's ""10 Grand"", baby",10K

* 这一行包含七个字段(fields):

* Ten Thousand

* 10000

* 2710

* 空字段

* 10,000

* It's "10 Grand", baby

* 10K

* 每条记录占一行

* 以逗号为分隔符

* 逗号前后的空格会被忽略

* 字段中包含有逗号,该字段必须用双引号括起来。如果是全角的没有问题。

* 字段中包含有换行符,该字段必须用双引号括起来

* 字段前后包含有空格,该字段必须用双引号括起来

* 字段中的双引号用两个双引号表示

* 字段中如果有双引号,该字段必须用双引号括起来

* 第一条记录,可以是字段名

*/

/**

*

タイトル: xufei.CSVAnalysis.java

*

说明:

*

著作権: Copyright (c) 2006

*

会社名: technodia

* @author 徐飞

* @version 1.0

* createDate Aug 11, 2008

* 修正履歴

* 修正日 修正者 修正理由

*/

public class CSVAnalysis {

private InputStreamReader fr = null;

private BufferedReader br = null;

public CSVAnalysis(String f) throws IOException {

fr = new InputStreamReader(new FileInputStream(f));

}

/**

* 解析csv文件 到一个list中

* 每个单元个为一个String类型记录,每一行为一个list。

* 再将所有的行放到一个总list中

* @return

* @throws IOException

*/

public List readCSVFile() throws IOException {

br = new BufferedReader(fr);

String rec = null;//一行

String str;//一个单元格

List listFile = new ArrayList();

try {

//读取一行

while ((rec = br.readLine()) != null) {

Pattern pCells = Pattern

.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");

Matcher mCells = pCells.matcher(rec);

List cells = new ArrayList();//每行记录一个list

//读取每个单元格

while (mCells.find()) {

str = mCells.group();

str = str.replaceAll(

"(?sm)\"?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");

str = str.replaceAll("(?sm)(\"(\"))", "$2");

cells.add(str);

}

listFile.add(cells);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (fr != null) {

fr.close();

}

if (br != null) {

br.close();

}

}

return listFile;

}

public static void main(String[] args) throws Throwable {

CSVAnalysis parser = new CSVAnalysis("c:/test2.csv");

parser.readCSVFile();

}

}

java如何用FileIputStream按行读取csv文件 求代码

FileInputStream是按字节读取文件的

按行读取的话,用BufferedReader

BufferedReader br = null;

try {

br = new BufferedReader(new FileReader("ss.csv"));

String str = "";

while (null != (str = br.readLine())) {

System.out.println(str);

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

if (br!= null) {

try {

br.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

用的相对路径,ss.csv和类放在一个文件夹里了

如何把csv的数据分割成多个excel数据?

1、首先Excel2007版一下最大支持65000多条数据,你必须安装Office2007版以上。

2、使用Access2007(Office组件之一),新建一个数据库。

3、使用导入外部数据中的“从文本导入”功能,选择CSV文件,注意一下导入向导中的“数据类型”及选择第一行做标题,直至完成。

4、导出为Excel文件即可。

目的就是避免几十万数据量造成电脑假死机。

当然你的电脑够BT的话,直接用Excel打开CSV文件,另存为Excel格式即可。

可以用 access,但是没有必要。CSV 是文本文件,网上找一个支持按行拆分的文件分割的小软件处理就可以了。

如果你不排斥自己写个脚本来处理,那么 bat 、power shell、VBS 都是可选的,会 python、perl 就更好了。比导入 access 之后再自己写输出可以省一步功夫。

csv文件处理——Opencsv

Comma-Separated Value ( [卡门 赛婆乱提的] 逗号分隔)(CSV),因分隔符没有严格的要求,可以使用逗号,也可以使用其他字符(如制表符\t,分号等),所以CSV也被称为 逗号分隔或者其他字符分隔值 。csv文件是使用纯文本来存储表格数据(只能存储文本,不能存储二进制)。-csv文件按行解析

构造器涉及到的三个参数:

注:若是设置解析的编码,需要在InputStreamReader对象中设置。

在上面我们可以使用readNext或者readAll进行逐行解读。但是opencsv提供了基于"策略"的映射,将CSV绑定到bean。

注:bean的类型只能为基本数据类型以及String类型,若是BigDecimal类型,那么将会抛出异常。

解析后的bean类:

csv文件:

通俗点就是列位置映射,csv文件中列位置对应到bean中的列。

需要注意的是,该策略会输出所有的行, 故,我们需要跳过某些行。

测试方法:

测试结果:

csv文件:

测试结果:

在csv获取的都是字符串,这种情况下应该使用转换器。将csv中的字段转换为对应的bean中的字段类型。

opencsv为我们提供了上面的两个转换器(我们可以参考,来实现自定义转换器)。使用 AbstractBeanFieldT 类来实现转换器。

csv文件

注:若是列映射策略,则要使用@CsvCustomBindByPosition()注解。

测试结果:

所有的过滤器必须实现CsvToBeanFilter 接口

测试结果

(官网)csv官方文档

(官网)CSVParserBuilder——CSVParser的目的是获取单个字符串并根据分隔符,引号和转义字符将其解析为其元素。

(官网)CSVReaderBuilder类

(理论)原CSV类库:OpenCSV

(API)用opencsv文件读写CSV文件

(API)opencsv4.0 自定义规则

csv文件是什么意思

CSV文件

CSV文件是电子表格程序常用的逗号分隔值文件。它包含以逗号分隔的纯文本数据集。

CSV文件中的每个新行表示一个新的数据库行,每个数据库行由一个或多个以逗号分隔的字段组成。

CSV文件通常由电子表格程序打开,以组织成单元格或用于在数据库之间传输数据。

CSV数据交换格式由大量个人、商业和科学程序支持。由于其广泛的支持,格式在程序之间传输表格数据时特别有用。

此外,CSV文件还有助于将以专有格式保存的数据传输到另一个不支持XLSX格式的程序中。