@Override
protected void writeToFile(List<ExportEntry> csvEntries) throws IOException {
// Setup compression stuff
ZipOutputStream zos = new ZipOutputStream(fileOutpuStream);
zos.setMethod(ZipOutputStream.DEFLATED);
zos.setLevel(9);
// Setup signature stuff
MessageDigest md;
try {
md = MessageDigest.getInstance("SHA-512");
} catch (NoSuchAlgorithmException ex) {
LOG.log(Level.SEVERE, "Missing hash algorithm for signature. No file exported!", ex);
throw new IOException("Missing hash algorithm for signature.");
}
DigestOutputStream dos = new DigestOutputStream(zos, md);
// write data
zos.putNextEntry(new ZipEntry(DATA_ZIP_ENTRY));
CsvWriter cwriter = new CsvWriter(dos, VaultCsvEntry.CSV_DELIMITER,
Charset.forName("UTF-8"));
cwriter.writeRecord(((CsvEntry) csvEntries.get(0)).getCsvHeaderRecord());
for (ExportEntry item : csvEntries) {
cwriter.writeRecord(((CsvEntry) item).toCsvRecord());
}
cwriter.flush();
// add signature file
zos.putNextEntry(new ZipEntry(SIGNATURE_ZIP_ENTRY));
String sigString = (new HexBinaryAdapter()).marshal(md.digest());
zos.write(sigString.getBytes(), 0, sigString.getBytes().length);
// close everything
cwriter.close();
dos.close();
zos.close();
fileOutpuStream.close();
}
VaultOdvExporter.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:OpenDiabetes
作者:
评论列表
文章目录