在写自己的一个小密码保存项目中,要实现一个功能,将存在数据库里面的所有密码信息全部写到SD中的某个文件,然后将该文件直接做成附件发送邮箱。
读取数据(参考的http://blog.csdn.net/xinzheng_wang/article/details/7793692)
public static void ExportToCSV(Cursor c, String fileName) {
int rowCount = 0;
int colCount = 0;
FileWriter fw;
BufferedWriter bfw;
File sdCardDir = Environment.getExternalStorageDirectory();
Log.d("haha", sdCardDir.getAbsolutePath());//storage/emulated/0
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.v("导出数据", "导出完毕!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
c.close();
}
}
操作手机模拟器可以看到该文件,然而下一步如何在程序中实现将该文件作为附件传出去还没有想法额