我正在使用标准 ZipOutputStream 压缩一些 json 文件
ObjectMapper objectMapper = new ObjectMapper();
try (ZipOutputStream out = new ZipOutputStream(Files.newOutputStream(outputFile + ".zip"))) {
out.putNextEntry(new ZipEntry(jsonFileName + ".json"));
objectMapper.writeValue(out, jsonDataList);
}
输出:
outputFile.zip\jsonFileName.json => jsonDataList contents
我想将它从 .zip 更改为 .7z 或 .xz 我目前正在为 Java 试用 XZ ( https://tukaani.org/xz/java.html )
ObjectMapper objectMapper = new ObjectMapper();
try (XZOutputStream out = new XZOutputStream(Files.newOutputStream(outputFile + ".xz"), new LZMA2Options())) {
objectMapper.writeValue(out, jsonDataList);
out.finish();
}
输出:
outputFile.xz\DataTypeOfJsonDataList => jsonDataList contents
它的工作原理是没有错误,创建了一个 .xz 文件,并且它确实包含一个 .json 文件(尽管文件名只是“jsonDataList”的数据类型减去“.json”扩展名)
如何指定内容的文件名?XZOutputStream 似乎没有办法添加 ZipEntry。