csvファイルは何ですか?


CSVファイル紹介
概要
CSVフルネームComma Separated valuesは、データを格納するための純粋なテキストです.
通常、スプレッドシートまたはデータベースソフトウェアで使用されるファイル形式.
ルール#ルール#
0は、空白を残さずに動作単位で開始します.
1カラム名を含むか含まないか、カラム名を含むとファイルの最初の行になります.
2 1行のデータは崩れず、空行はない.
3半角記号を区切り記号とし、列を空にしてもその存在を表す.
4列の内容が存在する場合は、「」で含めます.
5列の内容は「」があれば「」「」で含めます.
6ファイルの読み書き時の引用符、カンマの操作規則は互いに逆です.
7イントラコードフォーマットは、ASCII、Unicodeまたはその他であってもよい.
CSVファイルの生成と分析
CSVファイルとは、Excelが認識できる接尾辞のCSVというファイルで、サイトシステムのバックグラウンドで分析データを格納する際に使用される可能性があります.実はCSVファイルの読み取りと作成は比較的簡単で、主な技術点はファイルの読み書きです.しかし、CSVファイルの分析と生成には一定の代表性があり、CSVファイルの生成と分析の実現を通じて、バックグラウンドでロットデータを処理する簡単な考え方を理解することができる.
Excelを開いて、新しいファイルを作って、中で勝手にいくつかのデータを入力して、それから別のCSVファイルとして保存して、再びExcelで開いた時、1つのsheetだけあることを発見します.このファイルをメモ帳で開くと、次のようなデータが表示されます.
aaa,bbb,ccc,ddd
aaa2,bbb2,,ddd2
aaa3,bbb3,ccc3,
aaa4,bbb4,ccc4,ddd4
データをよく観察すると、以下の点を特定できます.
CSVファイルはテキスト型ファイル(バイナリ以外)
ファイルの1行が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
"); fw.write("aa1,bb1,cc1,dd1,ee1,ff1,gg1,hh1\r
"); fw.write("aaa\r
"); fw.write("aa2,bb2,cc2,dd2,ee2,ff2,gg2,hh2\r
"); fw.close(); } catch (IOException e) { e.printStackTrace(); } } }

このクラスをコンパイルして実行すると、Cディスクのルートディレクトリの下にhelloCsvという名前が生成することがわかる.csvのCSVファイルをダブルクリックして開くと、次のようになります.
CSVファイルの分析

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();
            }
        }
    }
}

ここでは、さっき生成したcsvファイルを読み取り、分析します.コンパイルして実行すると、通常、先ほど生成したCSVファイルの内容が表示されます.
これで、CSVファイルの生成と分析は実際に完了しました.自分のニーズに合ったCSVファイル分析クラスを書くには、自分のビジネスロジックとニーズに合わせて自分で実現することができます.CSVファイルの分析は確かに簡単だからです.
しかし、上記のプログラムにはいくつかの問題があります.これらの問題は開発の過程で注意しなければならない.そうしないと致命的なエラーが発生する可能性がある.
2つのクラスのリソースの解放に関する問題を比較します.CSV生成クラスにおけるFileWriterオブジェクトのクローズ(close()メソッド)はtryで実行される.CSV分析クラスのInputStreamReader,BufferedReaderオブジェクトのクローズ(close()メソッド)はfinallyで実行されます.CSV生成クラスはエラーです.ファイルとストリームの生成中にIO異常が発生する可能性があるため、オブジェクトcloseの前にIO異常が発生すると、closeメソッドは呼び出されず、リソースがタイムリーに解放されず、致命的なエラーが発生します.finallyのプログラムは,必ず実行される文であるため,操作途中で問題が発生しても最後にcloseメソッドを実行する.(try-catch-finallyはjava構文の基本的で重要な部分であり、よく知らないものは関連資料を調べることができる.)
CSVファイルの操作中、私たちは半角カンマでデータを区切っています.もしあるデータにちょうど半角カンマがあれば、データは間違いではありませんか?
解析したデータに全角文字がある場合、正しく解析できるかどうか.(文字化けしの問題)
以上の2番目の問題は考慮しなければならない.クラスを書くときは、このクラスが操作するデータや得られるデータが良いデータ(要求に完全に合致する正しいデータ)だとは信じないでください.書いたクラスが完全に正しいデータでテストされると、小さなデータエラーの問題が発生し、プログラム処理がクラッシュする可能性があります.だから、細部の問題は十分に考慮して対応して、自分で書いたクラスに一定の丈夫性を持たせなければならない.