Java_读写CSV文件
?
转自http://blog.csdn.net/zyuc_wangxw/article/details/7410586
Java_读写CSV文件
?
CSV 文件是指Excel可以识别的后缀名为CSV的文件,网站系统后台用来存储分析数据的时候有可能会用到它。其实CSV文件的读取和做成比较简单,主要的技 术点是文件的读写。不过CSV文件的分析和生成有一定的代表性,可以通过对CSV文件的生成和分析的实现,来了解后台处理批量数据的简单思路。
打开Excel,新建一个文件,在里面随便输入一些数据,然后另存为一个CSV文件,再次用Excel打开的时候,发现只有一个sheet。用一个记事本打开这个文件,可以看到类似如下的数据。
aaa,bbb,ccc,ddd
aaa2,bbb2,,ddd2
仔细观察数据,可以确定以下几点:
1.CSV文件是文本型文件(非二进制)
2.文件中的一行在Excel中显示的一行
3.同一行中的数据用半角逗号分隔
?
/** ?
?* 写csv文件
?* @title: CsvCreater
?* @description:
?* @version 1.0
?*/ ?
public class CsvCreater { ?
?public static void main(String[] args) { ?
? try { ?
? ?FileWriter fw = new FileWriter("C:\\CsvCreater.csv"); ?
? ?fw.write("aaa,bbb,ccc,ddd,eee,fff,ggg,hhh"); ?
? ?fw.write("aa1,bb1,cc1,dd1,ee1,ff1,gg1,hh1\n"); ?
? ?fw.write("aaa\n"); ?
? ?fw.write("aa2,bb2,cc2,dd2,ee2,ff2,gg2,hh2\n"); ?
? ?fw.close(); ?
? } catch (IOException e) { ?
? ?e.printStackTrace(); ?
? } ?
?} ?
}
?
/**
?* csv文件解析
?* @title: CSVAnalysis
?* @description:
?* @version 1.0
?*/ ?
public class CSVAnalysis { ?
? ? public static void main(String[] args) {
? ? ? ? InputStreamReader fr = null;
? ? ? ? BufferedReader br = null;
? ? ? ? try { ?
? ? ? ? ? ? fr = new InputStreamReader(new FileInputStream("C:\\CsvCreater.csv"));
? ? ? ? ? ? br = new BufferedReader(fr);
? ? ? ? ? ? String rec = null;
? ? ? ? ? ? String[] argsArr = null;
? ? ? ? ? ? while ((rec = br.readLine()) != null) {
? ? ? ? ? ? ? ? argsArr = rec.split(","); ?
? ? ? ? ? ? ? ? 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(); ?
? ? ? ? ? ? ? ? if (br != null) ?
? ? ? ? ? ? ? ? ? ? br.close(); ?
? ? ? ? ? ? } catch (IOException ex) { ?
? ? ? ? ? ? ? ? ex.printStackTrace(); ?
? ? ? ? ? ? } ?
? ? ? ? } ?
? ? } ?
}
?
但是生成的csv文件的列宽无法调整,希望大侠们能解决的不吝赐教