我在做什么?我将我的sqlite数据库导出到csv - 至少我尝试导出CSV格式非常奇怪
我已经完成了这两个手动和"OpenCSV"。
使用这两种方法我都会得到很奇怪的结果。他们似乎格式不正确。列(通常由','?分隔)或特殊字符(据说在opencsv中处理)看起来应该是这样。代码:
CSVWriter writer = new CSVWriter(new FileWriter(file),'\n',',');
String[] items = new String[11];
c.moveToFirst();
while(!c.isAfterLast()){
items[0] = c.getString(c.getColumnIndex(BaseColumns._ID));
items[1] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_QRCODE));
items[2] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_NAME));
items[3] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_AMOUNT));
items[4] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_UNIT));
items[5] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_PPU));
items[6] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_TOTAL));
items[7] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_COMMENT));
items[8] = c.getString(c.getColumnIndex(DepotTableMetaData.ITEM_SHOPPING));
items[9] = c.getString(c.getColumnIndex(DepotTableMetaData.CREATED_DATE));
items[10] = c.getString(c.getColumnIndex(DepotTableMetaData.MODIFIED_DATE));
c.moveToNext();
writer.writeNext(items);
}
writer.close();
,这一切让这个作为结果:imgur-image..
我也通过FileWriter的和StringBuffer做,但它似乎给完全相同的结果...我喜欢你能不能帮我;)
我已经通过计算器看了,但找不到任何匹配的问题;/
编辑:是的,我知道,我用的是“老了,过时”光标,但在这里,这不是问题。谢谢。
编辑2:已解决! 你必须分配一些常见的编码!
CSVWriter writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(destination+"/output.csv"),"UTF-8"));
完成了这项工作!
您使用的是csv库,但自己附加逗号... – you786
让我更新代码.. – Aeefire