プロが教える店舗&オフィスのセキュリティ対策術

CSVファイルの文字項目に改行コードが存在する場合

2つほど質問したいことがあります。もしよろしければアドバイス頂けると嬉しいです。

1つ目
javaでcsvファイルを読み込んで分割したいと思っています。
単純に考えればセパレータ(ここではカンマにしたいと思います)でsplit関数で済むのですが、いくつか特殊?な要件があります。

1.文字項目は"で囲まれる(例:123,"abc",456)
2.文字項目に改行コードが含まれる場合がある。
3.文字項目に"がある場合は""となる。
(4.文字項目に,がある場合は,,となる。)←ここは未確定になります。確定したら別途質問させて頂きたいと思っています。

特にいま気にしているのは2です。
改行コードが含まれているので、普通にファイルを1行読み込んでも途中までしか取得できないと想定しています。
改行が含まれている場合、2行以上(複数の改行の可能性)が1行分なのですが、どのように処理すればよいのか困っています。

2つ目
読み込んだデータをDB(DB2)に登録するのですが、改行コード込みで登録したいと思っています。1つ目の処理と絡んでどのようにすればうまくいくか悩んでいます。

よろしければアドバイス頂けないでしょうか。

A 回答 (4件)

2の回答した者です。



外部ライブラリを使用できないにしても、askaaskaさんの言うとおり
OpenCSVの解析ロジックを参考にしてはどうでしょう?
車輪の再発明はあまりよろしくないですし。

なお、OpenCSVはソースはすべて公開されていますし、解析部分(「CSVReader.java」
と「CSVParser.java」)ぐらいなら、結構簡単に目を通せる規模ですよ。


あと、2つ目の質問ですが、データに改行コードを含んでいてもJDBCで普通にInsert
などできると思いますが、何が問題なのでしょうか?
もう少し詳細に書いていただけると、解答しやすいと思います。
    • good
    • 0
この回答へのお礼

申し訳ありません。お返事が遅れしまいました。
有難うございました。

お礼日時:2010/12/04 19:44

1さんと2さんの意見のいいとこ取りで



OpenCSVを入手して
文字列の解析ロジックを参照すれば
良いんじゃない?
    • good
    • 0
この回答へのお礼

申し訳ありません。お返事が遅れしまいました。
有難うございました。

お礼日時:2010/12/04 19:44

1つ目のCSVの解析は OpenCSV を使うというのではだめですか?


要件の1~3は問題なく処理できたと思います。

参考URL:http://opencsv.sourceforge.net/
    • good
    • 0
この回答へのお礼

お返事有難うございます。
こういったものがあるのですね。

ただ自由に外部のライブラリを使用できない環境なため、教えて頂いたものを利用することができないのです。

お礼日時:2010/08/19 01:38

バイナリーで処理したらいかがですか。

    • good
    • 0
この回答へのお礼

お返事有難うございます。

バイナリでの具体的な処理について今はイメージが付かないのですが、少し検索を掛けてみたいと思います。

お礼日時:2010/08/19 01:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!