从数据库查询数据,分批导出csv文件,然后加密压缩ZIP文件,页面提供下载.
1.导出CSV采用开源JAR包,opencsv-2.0.jar(见附件),
调用方式如:
private static void testexportcsv() throws IOException {
final String[] header = new String[] { "申请号", "姓名", "性别" };
final String[][] data = new String[][] { { "1001", "小王", "男" },
{ "1002", "小高", "女" }, { "1003", "小菜", "男" } };
File tempFile = new File("c:/allbill.csv");
CSVWriter writer = new CSVWriter(new FileWriter(tempFile));
//生成头部
for (int i = 0; i < 1; i++) {
writer.writeNext(header);
writer.flush();
}
//生成内容数据,如果数据过多,可分批写入
for (int i = 0; i < data.length; i++) {
writer.writeNext(data[i]);
}
writer.close();
}
2.压缩CSV,生成加密的ZIP文件
压缩加密采用开源JAR包,de.jar (见附件)
调用方式如下:
AesZipFileEncrypter.zipAndEncrypt(new File("D:\\allbill.csv"),new File("D:\\allbill.zip"),"密码",new AESEncrypterBC());
注意:压缩时,如果文件过大,会导致内存溢出,解决方法就是调节内存大小(服务器的,JVM等内存大小)。