使用apache commons csv解析del(类似csv)格式文件

del格式类似csv,我这里的测试文件test.del是从DB2数据库中导出来的一组数据。

apache commons csv的maven坐标为:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>

测试程序:

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

public class DelFileParser {

    public static List< List<String> > parseFile(File file) {
        List resList = new ArrayList< List<String> >();
        try {
            InputStream is = new FileInputStream(file);
            InputStreamReader reader = new InputStreamReader(is, "GB2312");
            CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT);
            for (CSVRecord record : parser) {
                List<String> tmpList = new ArrayList<String>();
                for (String s : record) {
                    if (s != null)
                        s = s.trim();
                    tmpList.add(s);
                }
                resList.add(tmpList);
            }
            is.close();
            reader.close();
            return resList;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        List< List<String> > resList = parseFile(new File("D:\\test.del"));
        // test
        for (List<String> tmpList : resList) {
            for (String s : tmpList) {
                System.out.print(s + ",");
            }
            System.out.println();
        }
    }
}

采用default格式不会将第一行当成Header。

更多资料参见:http://commons.apache.org/proper/commons-csv/user-guide.html

原文地址:https://www.cnblogs.com/zifeiy/p/9175837.html

时间: 2024-11-06 07:33:48

使用apache commons csv解析del(类似csv)格式文件的相关文章

利用Apache commons exec 实现指定应用打开对应文件

在实际工作中,我们有时候需要指定某一个应用,打开某一个文件.比如用播放器打开一个MP3音乐文件,用记事本打开一个文本文件.不过有的应用需要一些额外的参数,在具体使用的时候要注意. package test.ffm83.commons.exec; import org.apache.commons.exec.CommandLine; importorg.apache.commons.exec.DefaultExecutor; importorg.apache.commons.exec.Execut

音频文件解析(一):WAV格式文件头部解析

WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源. 1.RIFF块(RIFF-Chunk) 偏移地址 字节数 数据类型 内容 &H00 4 String 'RIFF'文件标志 &H04 4 UInteger 文件总长 &H08  4  String  'WAVE'文件标志 2.格式化块(Format-Chunk) 偏移地址 字节数 数据类

音频文件解析(二):WAV格式文件波形绘制

解析WAV头部信息后,接下来就可以根据相关参数和DATA块数据绘制波形. 1.重新编码(转换为8bits,单声道数据) Public Function GetFormatData(ByVal pData() As Byte, ByVal pWaveHeader As waveHeaderStructre) As Byte() Dim temp As Integer Dim data() As Byte = {} If pWaveHeader.BitsPerSample = 8 And pWave

.NET Core中的CSV解析库

感谢 本篇首先特别感谢从此启程兄的<.NetCore外国一些高质量博客分享>, 发现很多国外的.NET Core技术博客资源, 我会不定期从中选择一些有意思的文章翻译总结一下. .NET Core中的CSV解析库 本篇博客来源于.NET Core Totorials的<CSV Parsing In .NET Core>. 背景介绍 对于初级程序员来说, 使用string.Split(',')来解析CSV文件基本就是唯一可行的方法, 但是之后他们会发现除了使用逗号分隔值之外,CSV中

Apache Commons CLI

Apache Commons CLI 简介 Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能. 类似工具包args4j, TE-Code command line parsing, CLAJR (Command-Line Arguments with Java Reflection), JArgs, JSAP (Java Simple Argument Processor), and 其他.   Apache C

Apache Commons CLI 开发命令行工具示例

概念说明Apache Commons CLI 简介 虽然各种人机交互技术飞速发展,但最传统的命令行模式依然被广泛应用于各个领域:从编译代码到系统管理,命令行因其简洁高效而备受宠爱.各种工具和系统都 提供了详尽的使用手册,有些还提供示例说明如何二次开发.然而关于如何开发一个易用.强壮的命令行工具的文章却很少.本文将结合 Apache Commons CLI,通过一个完整的例子展示如何准备.开发.测试一个命令行工具.希望本文对有相关需求的读者能有所帮助.      Apache Commons CL

使用 Apache Commons CLI 开发命令行工具示例

概念说明 Apache Commons CLI 简介 Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能. Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种: POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gz GNU 中的长参数形式,例如 du --human-read

apache commons csv写文件demo

1.简介 csv处理开源的工具有不少,比如:super csv 和 Apache commons csv,本文使用Apache Commons csv,其提供了非常简单的接口来读写csv文件. 本文是针对csv文件的写示例. 2.依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.1&

csv解析框架Windmill的一个demo

csv文件内容如下,第一行是文件头 解析代码如下: package com.netmarch; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; @Data public class CodecRegistries { private String index; private String name; /** * WAVE form Registration Number */ privat