使用openCSV导出数据时是否可以删除分隔符?

时间:2019-06-18 09:00:13

标签: java android opencsv

在我的应用程序中,我使用opencsv将数据从数据库表导出到.csv文件。效果很好。但是客户需要那些没有分隔符的书面行。这可能吗?

我已经考虑并尝试使用CSVParserWriter.DEFAULT_SEPARATOR = '';更改分隔符,但是char迭代器不能为空。

下面是我的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 个答案:

答案 0 :(得分:1)

我不明白为什么您会继续使用openCsv。但是,如果要进一步执行此操作,只需从彼此的列上连接字符串并创建一个长度为1的数组即可。

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

请注意使用+运算符而不是原始,的串联。