有一种比较简单的数据存储方式,那就是CSV,这个系统默认采用逗号分割的文件方式。
Excel转成CSV文件,在Windows下默认的列表分隔符是逗号(,)。在某些情况下,我们可能需要更改列表分隔符,如某个单元格内容包含逗号,而这可能导致使用它的程序出错,这样就需要更改列表分隔符;再比如Mac OS X下CSV文件的列表分隔符是分号(;),而且还不方便修改,为了统一 两个系统的列表分隔符,我们就需要更改Windows系统的列表分隔符
点开“开始菜单”,找到并打开“控制面板”
在“控制面板”中找到并打开“区域和语言”
在打开“区域和语言“窗体中选择”格式“选项,然后点击“其他设置(D)..."按钮打开“自定义格式”窗体。
列表分隔符默认是逗号(,)
修改列表分隔符为分号(;),这么做可以保证与Mac OS导出的CSV文件分隔符一致。
package com.jay.test.csv;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 读取CSV中的数据
*
* @author zcc
*
*/
public class CsvUtil {
public static void main(String[] args) {
readCsvFile("D:\\alipay_record_20160417_1512_1.csv", "gb2312", ",");
}
/**
* 读取CSV文件
*
* @param csvFilePath
* 文件路径
* @param fileEncoder
* 读取文件编码方式,主要是为了解决中文乱码问题。
* @param separtor
* CSV的分隔符,默认是逗号
*/
public static void readCsvFile(String csvFilePath, String fileEncoder, String separtor) {
InputStreamReader fr = null;
BufferedReader br = null;
try {
fr = new InputStreamReader(new FileInputStream(csvFilePath), fileEncoder);
br = new BufferedReader(fr);
String rec = null;
String[] argsArr = null;
while ((rec = br.readLine()) != null) {
if (rec != null) {
argsArr = rec.split(separtor);
for (int i = 0; i < argsArr.length; i++) {
System.out.print("num " + (i + 1) + ":" + argsArr[i] + "\t");
}
System.out.println();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fr != null)
fr.close();
} catch (IOException ex) {
ex.printStackTrace();
}
try {
if (br != null)
br.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}