java - 压缩文件的最佳方法

标签 java file csv zip

我正在从数据库读取不同的数据 block ,并将每个 block 写入 CSV 文件,并将该条目添加到 zip 文件中。这是我的问题:

  1. 我正在处理大量数据,是否建议在事务开始时打开 zip 流并在事务结束时关闭?如果我这样做,它会将所有这些数据保存在 RAM 中并导致任何内存问题吗?

  2. 如果我将这些 csv 文件保存在硬盘中并在交易结束时将其压缩,会有什么好处吗?如果是这样,在 java 中执行此操作的最佳方法是什么?

注意:我们的应用程序使用 Java 1.6。

最佳答案

看看 Java 7 引入的新文件系统

http://fahdshariff.blogspot.com/2011/08/java-7-working-with-zip-files.html

http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html

这允许您像处理文件系统一样处理 zip 文件,并且只需将数据直接复制或写入到 zip 文件内的文件中。但是 zip 文件系统不支持 Path.toFile() 方法,因此对于需要 File 对象的所有旧代码,您需要创建一个临时文件,然后将其复制。

对于您的应用程序,您可以使用类似 Files.newBufferedWriter(...) 的方法将文件直接写入 zip 存档中,而不必担心具体细节。

关于java - 压缩文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860696/

相关文章:

python - 使用 csv.DictReader,我想搜索一个字符串,然后打印包含该字符串的行

java - JTextField 仅 13 或 17 位有效,除(13 和 17)外全部无效

css - Vue2导入css文件

c - 在 C 中读取长 ASCII 文件

c - 从文件中读取并添加到链接列表中

python - 搜索 csv 文件中的列

csv - 将CSV加载到Redshift : "Missing newline: Unexpected character found at location 2"

java - Ant工具工作问题

java - 为什么 ResultSet 在使用字符串作为值的查询中少了一个字符?

java - Spring Boot 的 JHipster WAR Artifact 重命名为 JAR 无法运行