`
SpaceCity
  • 浏览: 98816 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

CSV文件读取

cvs 
阅读更多
package com.suning.crawler.util;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;

/**
* cvs文件读取
*
* @author xxx
*/
public class CSVParser
{
    // 日志记录
    private Logger logger = Logger.getLogger(CSVParser.class);

    /**
     * 文件路径
     */
    private String filePath;

    /**
     * 字符编码
     */
    private String encode;

    /**
     * 数据存储
     */
    private Map<Integer, List<String>> info;

    /**
     * @param filePath
     *            需要解析的文件路径
     */
    public CSVParser(String filePath)
    {
        this(filePath, "UTF-8");
    }

    /**
     * @param filePath
     *            需要解析的文件路径
     * @param encode
     *            字符编码
     */
    public CSVParser(String filePath, String encode)
    {
        this.filePath = filePath;
        this.encode = encode;
        info = new HashMap<Integer, List<String>>();

        // 开始解析
        parseCsv();
    }

    /**
     * 获取行<code>row<row>中的数据,若该行<code>row<row>中的数据,返回<code>null<code>,否则返回该行中的数据
     *
     * @param row
     *            记录行数
     * @return 当行数据
     */
    public List<String> readLine(int row)
    {
        return info.get(row);
    }

    /**
     * 解析文件的核心代码
     *
     * @return csv文件中的数据
     */
    private List<String> parseCsv()
    {
        List<String> row = null;
        BufferedReader reader = null;
        try
        {
            // 读取文件
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), encode));
            String rowInfo = reader.readLine();
            // 行记录指针
            int rowIndex = 0;
            while (null != rowInfo && !"".equals(rowInfo.trim()))
            {
                row = new ArrayList<String>();
                // 分割数据列
                for (String cell : rowInfo.split(","))
                {
                    row.add(cell);
                }
                info.put(rowIndex, row);
                rowInfo = reader.readLine();
                ++rowIndex;
            }
        }
        catch (FileNotFoundException e)
        {
            logger.error("file can not be found, file path: " + filePath);
        }
        catch (IOException e)
        {
            logger.error("I/O operations, file path: " + filePath);
        }
        finally
        {
            if (null != reader)
            {
                try
                {
                    reader.close();
                }
                catch (IOException e)
                {
                    logger.error("I/O operations, file path: " + filePath);
                }
            }
        }

        return row;
    }

}
分享到:
评论

相关推荐

    csv文件读写操作

    在MFC(Microsoft Foundation Classes)环境下,利用Visual Studio 2015进行CSV文件的读写操作,可以方便地处理这类数据。本文将详细介绍如何在VS2015的MFC项目中实现CSV文件的读写功能。 1. **CSV文件结构** CSV...

    linux c++csv文件读写

    一、CSV文件读取 1. **标准库iostream** 使用`ifstream`类可以读取CSV文件的每一行。首先打开文件,然后逐行读取,每次遇到逗号就分割出一个字段。例如: ```cpp #include #include #include std::...

    VC++读写CSV文件的例子

    在VC++环境中,处理CSV文件可以帮助开发者快速地读取和写入结构化的数据。下面将详细介绍如何使用VC++进行CSV文件的读写操作,并提供相关的编程技巧。 首先,CSV文件的结构非常简单,每一行代表一个记录,每个记录...

    基于c++的简易csv快速读写文件

    本项目提供了一个基于C++的简易CSV文件读写工具,允许开发者高效地处理大型CSV文件,即使在内存有限的情况下。 首先,我们需要理解C++中的文件操作基础。C++标准库提供了`fstream`类来处理文件输入输出。`ifstream`...

    csv文件读写

    本文将深入探讨如何在实际项目中进行CSV文件的读写操作。 首先,读取CSV文件是数据分析的第一步。在Python中,我们通常使用pandas库来处理CSV数据。安装pandas库后,可以使用以下代码读取CSV文件: ```python ...

    CSV文件读写程序

    读取CSV文件通常使用`csv.reader`或`csv.DictReader`,而写入CSV文件则使用`csv.writer`或`csv.DictWriter`。 **读取CSV文件:** 1. `csv.reader`: 这个函数返回一个迭代器,每次迭代返回一行数据,数据为列表形式...

    codesys读取CSV文件数据的程序

    codesys通过文件读取功能块是实现对CSV文件数据的读取, a、通过SysFileOpen指令打开文件; b、通过SysFileGetSizeByHandle获取文件字符序列大小; c、通过SysFileRead读取一次读取字符序列,并按顺序依次存入预先设...

    CSV文件读取类C++源代码

    本篇文章将深入探讨如何在C++中实现一个CSV文件读取类,以从CSV文件中获取每一行每一列的内容。 首先,我们需要理解CSV文件的基本结构。CSV文件由一行行的数据组成,每行数据由零个或多个字段构成,字段之间用分隔...

    MFC 读取csv文件

    下面我们将详细介绍如何使用MFC来读取CSV文件。 首先,理解CSV文件的基本结构至关重要。CSV文件由一系列行组成,每行包含一个或多个字段,字段之间用逗号分隔。例如: ``` Name,Age,Job Alice,25,Engineer Bob,30,...

    java读写csv文件,中文乱码问题

    解决Java读取CSV文件中文乱码问题的步骤如下: 1. **指定字符编码**:在使用`BufferedReader`或者`FileReader`读取文件时,应明确指定编码。例如,使用`InputStreamReader`构造函数可以传入编码类型,如`new ...

    php csv文件读取脚本

    php csv文件读取脚本 读取csv文件,并在网页上显示出来,可以选择排序

    CH376S读CSV文件_ch376s_c_读写csv文件_

    本篇文章将详细介绍如何在C语言环境下,利用CH376S芯片在STM32F103RCT6上实现CSV文件的读取和写入。 首先,理解CSV文件格式是基础。CSV是一种通用的数据交换格式,其中数据以逗号分隔,每行代表一条记录,每个字段...

    js读取csv文件并使用json显示出来

    通过这个示例,我们可以了解到如何将服务器上的CSV文件读取到浏览器中,并以表格的形式展示出来。这在数据展示、数据分析等应用场景中非常有用。此外,借助PapaParse这样的库,即使是对前端开发不太熟悉的人也可以...

    c++实现的读写csv文件

    本篇文章将深入探讨如何使用C++来读取和写入CSV文件,以实现数据的导入和导出功能。 首先,理解CSV文件的基本结构至关重要。CSV文件由行组成,每行包含一个或多个字段,字段之间通过逗号分隔。在某些情况下,如果...

    CSV文件读取与写入

    本文将详细介绍如何在Wince系统中进行CSV文件的读取和写入操作。 首先,读取CSV文件的基本步骤如下: 1. **打开文件**:使用C++的fstream库或其他编程语言的相应文件操作函数,指定CSV文件的完整路径,以只读模式...

    java csv文件读取工具类

    一个非常好用的csv文件操作工具

    Java CSV文件读取

    Java读取excel,Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作。

    java读写excel、csv文件

    文件中包括读取excel、csv文件,同时可以将读取出的文件内容保存在另外一个excel或csv中。注意excel2003和excel2007调用的jar包也不一样,需要将代码进行修改。2007版的将HSSF改成XSSF,2003相反。csv文件用XSSF

Global site tag (gtag.js) - Google Analytics