您的位置:首页 > 编程语言 > Java开发

Java读取和写入CSV文件

2016-04-17 15:50 661 查看
有一种比较简单的数据存储方式,那就是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();}}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: