import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
public class CsvParse {
/**
*
* 读取CSV文件得到数据列表 <br>
* 〈功能详细描述〉
*
* @param in:文件输入流
* @param columnNames:字段名列表
* @param startRow:从第几行开始读
* @param splitCharacter:分隔符
* @param encoding:文件的字符集编码
* @return 数据列表
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
public static List<Map<String, Object>> parse(InputStream in, String[] columnNames, int startRow,
String splitCharacter, String encoding) {
// 读取到的CSV数据列表
List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(in, encoding));
String line = null;
int lineNum = 0;
while ((line = br.readLine()) != null) {
lineNum++;
if (lineNum < startRow) {
continue;
}
Map<String, Object> lineMap = new HashMap<String, Object>();
String[] columns = line.split(splitCharacter);
for (int i = 0; i < columns.length; i++) {
lineMap.put(columnNames[i], columns[i]);
}
dataList.add(lineMap);
}
} catch (Exception e) {
//
} finally {
IOUtils.closeQuietly(br);
}
return dataList;
}
/**
*
* 默认从第一行开始读,文件分隔符为逗号,文件字符集编码为UTF-8 <br>
* 〈功能详细描述〉
*
* @param in
* @param columnNames
* @return
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
public static List<Map<String, Object>> parse(InputStream in, String[] columnNames) {
return parse(in, columnNames, 1, ",", "UTF-8");
}
public static void main(String[] args) throws FileNotFoundException {
FileInputStream is = new FileInputStream("D:/a.csv");
String[] columnNames = { "userName", "password", "address", "age" };
System.out.println(parse(is, columnNames, 1, ",", "UTF-8"));
}
}
分享到:
相关推荐
易语言中处理CSV文件通常涉及读取文件、解析内容、处理数据以及可能的写入操作。在描述中提到的优化策略是针对循环中的性能提升,这主要包括两方面: 1. **简化重复语句**:在循环内部,避免执行相同的代码,可以将...
`csvsql`是`csvkit`库的一部分,`csvkit`是一个用于读取、写入和操作CSV文件的命令行工具和Python库。通过`csvsql`,我们可以利用SQL(结构化查询语言)的强大功能来筛选、聚合、连接CSV数据,而无需编写复杂的...
一个用于读取和写入CSV文件的库。 极其快速,灵活且易于使用。 支持读写自定义类对象。 安装 程序包管理器控制台 PM> Install-Package CsvHelper .NET CLI控制台 > dotnet add package CsvHelper 文献资料 建立文件...
*** load_and_convert是其他模块调用的公共接口*** read_csv.c实现了read_csv函数,该函数读取csv文件并将其内容逐行打印到屏幕上。 该代码分为2:read_csv.c(包含实现)read_csv.h(包含声明) *** read_csv是...
默认情况下,`to_csv()`会创建一个CSV文件,但如果我们不提供扩展名,它将默认为TXT格式。此外,我们可以设置`sep`参数来指定分隔符,通常使用制表符(\t)作为TXT文件的列分隔符。 ```python txt_file = 'path_to...
QLCSVFile类的设计旨在帮助开发者更方便地在Cocos2dx项目中读取和解析CSV文件。 QLCSVFile.cpp和QLCSVFile.h是这个类的实现文件和头文件,分别包含了类的定义和函数实现。在C++中,头文件通常包含类的声明,而cpp...
这些类通常包含公共属性,属性名与CSV文件的列名对应。这样做的好处是提高了代码的可维护性和可读性。 3. **附加属性**:为了增强实体类的功能,可以添加一些附加属性,例如`[NotMapped]`用于指示该属性不应在...
因此,类库可能包含了读取和写入CSV文件的方法,如`ReadCsv()`和`WriteCsv()`。 总的来说,这个FTP操作类提供了全面的FTP客户端功能,包括连接管理、文件上传下载以及CSV文件的支持。它通过封装复杂的FTP协议细节,...
例如,人口分布数据可以帮助政府规划公共服务设施,如学校、医院的布局;研究者可以借此研究人口老龄化、城镇化进程;商业机构则可以利用这些数据进行市场分析和选址决策。 总的来说,"中国区县级人口普查数据"结合...
这个类不仅能够读取CSV文件,还能处理各种复杂情况,为在Linux和Windows环境中进行数据处理提供便利。在实际应用中,还可以根据具体需求扩展该类,比如添加写入CSV文件的功能,或者支持更复杂的CSV规范。
我们可以读取CSV文件,将其内容转化为测试参数,然后传递给参数化测试方法。 实现这一功能通常需要以下步骤: 1. 引入依赖:如Apache Commons CSV库,它可以方便地读取和解析CSV文件。 2. 编写CSV文件:创建一个...
基类通常包含一些公共方法,供子类继承和重写,以实现特定的文件处理逻辑。 1. **文件的读写功能**: - **读取文件**:C#中的`System.IO`命名空间提供了`File`类,用于基本的文件操作。例如,`File.ReadAllText()`...
- 使用“表输入”步骤读取CSV文件。 - 应用“过滤行”或“异常行”步骤来去除不符合条件的记录。 - 使用“替换/修改值”步骤处理缺失值或异常值。 - “类型转换”步骤可以改变数据类型。 - “联合”或“归并列”步骤...
- **解析器对象/类**:这是库的核心,负责读取CSV数据并将其转换为内部表示。 - **数据结构**:库通常定义了自己的数据结构来存储CSV行和字段,这些结构可能具有额外的元数据,如列名、数据类型等。 - **API接口**:...
这个压缩包内的201908-baywheels-tripdata.csv文件,作为一个矢量数据集,提供了丰富的信息,有助于分析城市交通模式、骑行行为以及共享单车系统的运营效率。 首先,我们来深入了解一下CSV(Comma Separated Values...
CSV文件可以被各种统计软件、电子表格程序(如Microsoft Excel)以及编程语言(如Python和R)轻松读取。 描述中提到,数据在1944年至1946年之间有所缺失,这可能是因为第二次世界大战(简称EZ,通常指1939年至1945...
用python编写的一个简单的成绩管理系统,基本功能和鲁棒性都还可以,可以防止部分非法输入;代码比较简单,可以按照自己的需求自行进行更改。
1. CSV数据格式:CSV文件以逗号分隔值的形式存储数据,每一行代表一条记录,每列代表一个属性。这种格式通用且兼容性好,可以用Excel、Python、R、SQL等工具进行读取和处理。 2. 地理信息系统(GIS):GIS技术结合...
压缩包子文件的文件名称 "2019-07.csv" 表明解压后得到的CSV文件包含了2019年7月的详细数据。这种数据通常会包含日期、时间、地点、PM2.5浓度值,以及其他可能的气象参数。每行代表一个特定时间和地点的观测记录,列...