Android如何将SQLite数据库中的数据导出为csv格式的文件 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android如何将SQLite数据库中的数据导出为csv格式的文件

2016-06-07 10:18:24 1756 1

搜到了下边这个方法,但是我没实现功能,请各位指教。最好能有代码

 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();
    }
}
取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 19:29:30

    csv格式就是回车分割记录行,逗号分隔字段,如果数据有逗号,需要加上引号。
    你说的这代码什么问题?基本思路差不多,你自己对照完善下。

    0 0
相关问答

0

回答

Android-SDK之如何实现下载文件(一)?

2017-10-18 13:45:43 1492浏览量 回答数 0

0

回答

Android-SDK之如何实现下载文件(二)?

2017-10-18 13:46:28 1691浏览量 回答数 0

1

回答

用户反馈Android SDK:找不到alicloud-android-feedback.aar,如

2020-03-27 21:32:17 488浏览量 回答数 1

1

回答

用户反馈Android SDK:如何开启和关闭语音反馈

2020-03-27 21:17:30 632浏览量 回答数 1

0

回答

用户反馈Android SDK:如何关闭沉浸式任务栏?

2017-10-24 10:51:51 1261浏览量 回答数 0

0

回答

移动推送Android SDK:接入移动推送,如何区分测试环境和生产环境?

2017-10-23 14:13:51 1300浏览量 回答数 0

0

回答

移动推送Android SDK:在Activity中初始化推送SDK,无法接收到推送通知为什么?

2017-10-23 14:14:37 1428浏览量 回答数 0

0

回答

移动推送Android SDK:SDK初始化成功,应用杀死后为什么收不到推送?

2017-10-23 14:15:07 1534浏览量 回答数 0

0

回答

移动推送Android SDK:如何设置通知文字多行显示?

2017-10-23 14:16:40 1704浏览量 回答数 0

0

回答

移动推送Android SDK:在通知回调中无法打开activity,这是怎么回事?

2017-10-23 14:17:21 1279浏览量 回答数 0
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载