搜到了下边这个方法,但是我没实现功能,请各位指教。最好能有代码
public void ExportToCSV(Cursor c, String fileName) {
int rowCount = 0;
int colCount = 0;
FileWriter fw;
BufferedWriter bfw;
File sdCardDir = Environment.getExternalStorageDirectory();
File saveFile = new File(sdCardDir, fileName);
try {
rowCount = c.getCount();
colCount = c.getColumnCount();
fw = new FileWriter(saveFile);
bfw = new BufferedWriter(fw);
if (rowCount > 0) {
c.moveToFirst();
// 写入表头
for (int i = 0; i < colCount; i++) {
if (i != colCount - 1)
bfw.write(c.getColumnName(i) + ',');
else
bfw.write(c.getColumnName(i));
}
// 写好表头后换行
bfw.newLine();
// 写入数据
for (int i = 0; i < rowCount; i++) {
c.moveToPosition(i);
// Toast.makeText(mContext, "正在导出第"+(i+1)+"条",
// Toast.LENGTH_SHORT).show();
Log.v("导出数据", "正在导出第" + (i + 1) + "条");
for (int j = 0; j < colCount; j++) {
if (j != colCount - 1)
bfw.write(c.getString(j) + ',');
else
bfw.write(c.getString(j));
}
// 写好每条记录后换行
bfw.newLine();
}
}
// 将缓存数据写入文件
bfw.flush();
// 释放缓存
bfw.close();
// Toast.makeText(mContext, "导出完毕!", Toast.LENGTH_SHORT).show();
Log.d("导出数据", "导出完毕!");
Toast.makeText(SecondActivity.this, "默认Toast样式",
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
c.close();
}
}
csv格式就是回车分割记录行,逗号分隔字段,如果数据有逗号,需要加上引号。
你说的这代码什么问题?基本思路差不多,你自己对照完善下。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。