Открыть CSV: как избежать запятой при экспорте дампа SQL в CSV

Я использую открытый CSV для экспорта дампа SQL в CSV. В одном из столбцов у меня много запятых. После экспорта в CSV данные разбиваются на каждую запятую. Как я могу избежать запятой?

    con = DriverManager.getConnection(url, user, password);
    pst = con.prepareStatement("SELECT * FROM Cars");
    rs = pst.executeQuery();

    writer = new CSVWriter(new FileWriter("cars.csv"), 
            DEFAULT_SEPARATOR, NO_QUOTE_CHARACTER);
    writer.writeAll(rs, true);

Фактические данные:

LINESTRING (184317.646019852 55192.7039821837, 184361.902992529 55174.2199648116)

Что я получаю

COLUMN-1                                            COLUMN-2
LINESTRING (184317.646019852 55192.7039821837      184361.902992529 55174.2199648116)

person NVG    schedule 02.01.2017    source источник


Ответы (1)


Если вы действительно хотите сгенерировать CSV-файл, совместимый со стандартом RFC 4180:

6.  Fields containing line breaks (CRLF), double quotes, and !!!commas!!!
    should be enclosed in double-quotes.  For example:

     "aaa","b CRLF
     bb","ccc" CRLF
     zzz,yyy,xxx

просто удалите опцию NO_QUOTE_CHARACTER.

В противном случае вам следует найти другую библиотеку, которая может генерировать форматы с разделителями, несовместимые с CSV (например, если вы хотите использовать \ для экранирующих запятых вместо двойных кавычек).

person Maxim    schedule 02.01.2017