1

opencsvを使用してcsvファイルを読み取っています。csvファイルに一重引用符または二重引用符が含まれている場合があります。csvファイル自体のデータを変更せずにそれらを読み取るにはどうすればよいですか。

今のところ、一重引用符を2つの一重引用符に置き換えると、二重引用符と同じように正常に機能し、一重引用符を2つに置き換えると機能します。しかし、私はソースファイルに触れたくありません。

アクセスするコードは次のとおりです

CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(file), "UTF-8"), delimiter,'\"',0);
data = a1;b1;c1;hello"world;d1;e1
       a2;b3;c2;hello"world;d2;e2
; is the delimiter

この結果、二重引用符も含まれる次の行がスキップされます。奇数行はすべて挿入され、偶数行はスキップされます。

前もって感謝します

4

2 に答える 2

2

最終的にjavacsvを使用しました。問題ありません

于 2012-11-19T14:34:57.497 に答える
1

解決策1:出力ファイルにダブルコース/シングルコースが必要ないと仮定して、実行できる可能性のあることの1つ。

  1. ファイル全体を読み取り、不要な特殊文字をすべてスペースに置き換えます。(これは正規表現を使用すると簡単です)
  2. 次に、CSVReaderを使用してファイルを読み取ります。

解決策2:すべての特殊文字を保持する場合は、特殊文字の前に「\」バックラッシュを配置します。それからそれを読んでください。

于 2016-02-22T13:02:40.580 に答える