在http://hjxia.iteye.com上看到这篇文章,试了试,还好用,记录了下来
首先在http://ostermiller.org/utils/download.html 上下载com.Ostermiller.util cvs的jar包.
有了这个jar包就可以写个工具类,专门控制csv文件的读取操作.
具体代码如下:
package com.spr.csv;
import java.io.IOException;
import java.io.InputStream;
import com.Ostermiller.util.ExcelCSVParser;
import com.Ostermiller.util.LabeledCSVParser;
public class CsvFileParser{
private LabeledCSVParser csvParser;//csvParser
private int currLineNum = -1;//The current line number for reading.
private String[] currLine = null;//The data of current line.
/*
* Param: in InputStream
* throws IOException
*/
public CsvFileParser(InputStream in) throws IOException {
csvParser = new LabeledCSVParser(new ExcelCSVParser(in));
currLineNum = csvParser.getLastLineNumber();
}
/*
* Get the titles of csv file.
*
* return String[]
*/
public String[] getTitles() throws IOException {
return csvParser.getLabels();
}
/*
* Checkout whether it has more data.
*
* @return ture: has data,false nodata.
*/
public boolean hasMore() throws IOException {
currLine = csvParser.getLine();
currLineNum = csvParser.getLastLineNumber();
if (null == currLine)
return false;
return true;
}
/*
* Get the data of filed by field name.
* param:String filedName
*
* @return:String
*/
public String getByFieldName(String fieldName) {
return csvParser.getValueByLabel(fieldName);
}
/*
* Close the parser.
*
*
*/
public void close() throws IOException {
csvParser.close();
}
/*
* Read the current line.Return the data of current line.
*
* @return String[]
*/
public String[] readLine() throws IOException {
currLine = csvParser.getLine();
currLineNum = csvParser.getLastLineNumber();
return currLine;
}
/*
* Get current line number.
*
* @return int
*/
public int getCurrLineNum(){
return currLineNum;
}
/*
* Get the data of the current line.
*
* @return String[]
*/
public String[] getCurrLine() {
return currLine;
}
}
分享到:
相关推荐
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...
以上就是使用javacsv库读取CSV文件并导入到MySQL数据库的基本步骤。在实际应用中,你可能需要处理更复杂的情况,比如错误处理、事务管理、性能优化等。此外,考虑到文件读写和数据库操作的性能,你还可以考虑使用多...
本人以JAVA来实现以支付宝的账单表为例,实现JAVA读取CSV..csv是一种文件格式(如.txt、.doc等),也可理解.csv文件就是一种特殊格式的纯文本文件。即是一组字符序列,字符之间已英文字符的逗号或制表符(Tab)分隔。
本篇将详细介绍如何在Java中有效地读取CSV文件,以及如何避免在导入Excel时可能出现的单元格取值问题。 首先,理解CSV文件的结构至关重要。CSV文件是以逗号分隔的纯文本文件,每一行代表一个记录,每个记录内的字段...
Java读取CSV例子 Java读取CSV例子是通过使用javacsv-2.0.jar包来实现的。javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来...
Java读取excel,Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作。
本教程将深入探讨如何使用Java在Eclipse集成开发环境中读取CSV文件中的指定行和列数据。 首先,我们需要了解CSV文件的基本结构。CSV文件是以逗号分隔的文本文件,每行代表一个记录,每个记录的字段由逗号分隔。例如...
首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines()`方法。例如: ```java import java.io.BufferedReader; import java...
读取CSV文件主要使用`CSVReader`类。以下是一个简单的例子: ```java import com.opencsv.CSVReader; public class CSVReaderExample { public static void main(String[] args) { try (CSVReader reader = new ...
下面的Java代码展示了如何使用`BufferedReader`类和`FileInputStream`类来读取CSV文件: ```java import java.io.*; import java.util.*; public class HandleCsv { public static void main(String[] args) ...
1. **读取CSV**:使用Java读取CSV文件,解析每一行的数据,可能需要创建一个数据模型类来存储解析后的数据。 2. **数据转换**:根据数据结构,将CSV数据转换为Neo4j可以理解的格式。例如,将CSV中的行转化为节点或...
Java 读取 CSV 文件内容示例代码 Java 读取 CSV 文件内容是一种常见的数据处理操作,以下是 Java 读取 CSV 文件内容的示例代码。 CsvUtil 类 CsvUtil 是一个用于读取 CSV 文件内容的工具类,提供了读取 CSV 文件...
可读取复杂的csv文件,根据引号和逗号等分割读取所需要的数据信息。
利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作
Java读取CSV文件主要依赖于第三方库,如Apache Commons CSV或OpenCSV。在给定的代码示例中,使用的是`com.csvreader.CsvReader`类,这表明使用的是OpenCSV库。 **关键代码解读:** ```java // 创建CsvReader实例并...
Java 读写 CSV 文件是指使用 Java 语言来读取和写入 CSV 文件,CSV 文件是一种常用的数据文件格式,逗号分隔的文本文件,默认可以用 Office 软件打开。CSV 文件可以包含各种特殊字符的处理信息,如对包含特殊字符的...
然而,在Java中读取和写入csv文件时,中文字符如果不正确地处理,可能会出现乱码的情况。下面我们将详细介绍Java避免UTF-8的csv文件打开中文出现乱码的方法。 首先,需要了解UTF-8和UTF-16LE这两种编码格式。UTF-8...