Возможно ли удаление разделителя при экспорте данных с openCSV? - PullRequest
1 голос
/ 18 июня 2019

В моем приложении я экспортирую данные из таблицы базы данных в файл .csv с помощью opencsv.Это работает хорошо.НО клиенту нужны эти написанные строки без разделительной запятой.Возможно ли это?

Я думал и пытался изменить разделитель на CSVParserWriter.DEFAULT_SEPARATOR = '';, но итератор символов не может быть пустым.

Ниже приведен мой метод exportData

private void exportData() {

        DatabaseHelper dbhelper = new DatabaseHelper(getApplicationContext());
        File exportDir = new File(Environment.getExternalStorageDirectory(), "kerailymestari_tiedostot");
        if (!exportDir.exists())
        {
            exportDir.mkdirs();
        }

        File file = new File(exportDir, kerailyNimi+".csv");
        try
        {
            file.createNewFile();
            CSVWriter csvWrite = new CSVWriter(new FileWriter(file), CSVParserWriter.DEFAULT_SEPARATOR, CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER, CSVWriter.DEFAULT_LINE_END);
            SQLiteDatabase db = dbhelper.getReadableDatabase();
            Cursor curCSV = db.rawQuery("SELECT * FROM tuotteet WHERE KID = " + kid,null);
            //csvWrite.writeNext(curCSV.getColumnNames());
            while(curCSV.moveToNext())
            {
                //Which column you want to exprort
                String arrStr[] ={curCSV.getString(1),curCSV.getString(2), curCSV.getString(3), curCSV.getString(4)};
                csvWrite.writeNext(arrStr);
            }
            csvWrite.close();
            curCSV.close();
        }
        catch(Exception sqlEx)
        {
            Log.e("Results", sqlEx.getMessage(), sqlEx);
        }
    }

Этокод необходимо изменить, чтобы разделитель был удален или изменен.Или есть лучшие решения?

1 Ответ

1 голос
/ 18 июня 2019

Я не понимаю, почему вы продолжаете использовать openCsv тогда. Но если вы хотите сделать это дальше, просто объедините строки из столбцов друг в друге и создайте массив длиной 1. Должно сработать что-то вроде ниже:

String arrStr[] ={curCSV.getString(1) + curCSV.getString(2) + curCSV.getString(3) +  curCSV.getString(4)};
            csvWrite.writeNext(arrStr);

Обратите внимание на объединение с использованием оператора + вместо исходного ,.

...