csv文件是什么
CSV文件介绍
简介
CSV全称 Comma Separated values,是一种用来存储数据的纯文本
文件格式,通常用于电子表格或数据库软件。
规则
0 开头是不留空,以行为单位。
1 可含或不含列名,含列名则居文件第一行。
2 一行数据不垮行,无空行。
3 以半角符号,作分隔符,列为空也要表达其存在。
4 列内容如存在,,则用“”包含起来。
5 列内容如存在“”则用“”“”包含。
6 文件读写时引号,逗号操作规则互逆。
7 内码格式不限,可为ASCII、Unicode或者其他。
CSV文件的生成与分析
CSV文件是指Excel可以识别的后缀名为CSV的文件,网站系统后台用来存储分析数据的时候有可能会用到它。其实CSV文件的读取和做成比较简单,主要的技术点是文件的读写。不过CSV文件的分析和生成有一定的代表性,可以通过对CSV文件的生成和分析的实现,来了解后台处理批量数据的简单思路。
打开Excel,新建一个文件,在里面随便输入一些数据,然后另存为一个CSV文件,再次用Excel打开的时候,发现只有一个sheet。用一个记事本打开这个文件,可以看到类似如下的数据。
aaa,bbb,ccc,ddd
aaa2,bbb2,,ddd2
aaa3,bbb3,ccc3,
aaa4,bbb4,ccc4,ddd4
仔细观察数据,可以确定以下几点:
CSV文件是文本型文件(非二进制)
文件中的一行在Excel中显示的一行
同一行中的数据用半角逗号分隔
发现以上的规律,我们可以自己也生成一个CSV文件。也可以简单的分析CSV文件。
现在给CSV文件的生成和分析写个简单的例子。(如果对文件处理类不熟悉,可以看一下java的文件处理,或者看一下JDK中关于java.io.File类的帮助信息)
生成CSV文件。(HelloCsvCreater.java)
package com.vogoal.test;import java.io.FileWriter;import java.io.IOException;/*** @author SinNeR* * create a CSV file*/public class HelloCsvCreater { public static void main(String[] args) { try { FileWriter fw = new FileWriter("C:\\helloCsv.csv"); fw.write("aaa,bbb,ccc,ddd,eee,fff,ggg,hhh\r\n"); fw.write("aa1,bb1,cc1,dd1,ee1,ff1,gg1,hh1\r\n"); fw.write("aaa\r\n"); fw.write("aa2,bb2,cc2,dd2,ee2,ff2,gg2,hh2\r\n"); fw.close(); } catch (IOException e) { e.printStackTrace(); } }}package com.vogoal.test;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;/*** @author SinNeR* * analysis a CSV file*/public class HelloCSVAnalysis { public static void main(String[] args) { InputStreamReader fr = null; BufferedReader br = null; try { fr = new InputStreamReader(new FileInputStream( "C:\\helloCsv.csv")); br = new BufferedReader(fr); String rec = null; String[] argsArr = null; while ((rec = br.readLine()) != null) { System.out.println(rec); argsArr = rec.split(","); for (int i = 0; i < argsArr.length; i++) { System.out.println("num " + (i + 1) + ":" + argsArr[i]); } } } catch (IOException e) { e.printStackTrace(); }finally{ try{ if ( fr != null ) fr.close(); if ( br != null ) br.close(); }catch(IOException ex){ ex.printStackTrace(); } } }}