2017-05-12 26 views
-1

ResultSetオブジェクトをCSV形式のStringオブジェクトに変換しようとしています。 OpenCVを使ってCSVファイルに変換しようとしましたが、文字列として入力する必要があります。最初にファイルに変換し、そのデータを文字列に変換してからファイルを削除するオプションがありますが、それは余分なオーバーヘッドになります。CSV形式の文字列への結果セット

これを達成する方法はありますか、私は検索してみましたが、これまで何もしていません。

+0

どうすればよいのですか? –

+0

これは私の最後の選択肢です:) – HyperioN

+0

CSVフォーマッタのための[OpenCV](http://opencv.org/about.html)の過剰なビットはありませんか?専用のCSVライブラリを使用しないでください。 [Apache Commons CSV](https://commons.apache.org/proper/commons-csv/)または[**ウェブ検索**](https://www.google .com/search?q = java + csv + library)? – Andreas

答えて

1

独自のメソッドを記述しないでください.CSVはコンマで連結された文字列だけではありません。クォータ、そのエスケープなどに関するいくつかの細部があります。 専用ライブラリを使用してください。個人的に私はunivocity-parsersを "壊れた" csvファイルの方が好きですが、ResultSetを扱う場合はopencsvライブラリを使うことができます。

StringWriter stringWriter = new StringWriter(); 
    CSVWriter csvWriter = new CSVWriter(stringWriter); 
    csvWriter.writeAll(resultSet, true); // including column names 
    String result = stringWriter.toString(); 
+1

univocityパーサライブラリの作成者: 'CsvRoutines()。write(resultSet、stringWriter)'というコードで、結果セットを書くことができます。それが役に立てば幸い! –

+0

@JeronimoBackesあなたの提案に感謝します。私はCsvParserSettings設定=新しいCsvParserSettings(); settings.getFormat()。setDelimiter( '|'); csvRoutines.setParserSettings(設定); csvRoutines.write(resultSet、stringWriter)を使用して区切り文字を設定しようとしているドキュメントを読んでいます。しかし、私はまだカンマ区切りの出力を取得しています。 – HyperioN

+0

気にしないで、私はそれを理解した。 CsvParserSettingsの代わりにCsvWriterSettingsを使用しなければならなかった。 – HyperioN

関連する問題