我正在从数据库读取不同的数据 block ,并将每个 block 写入 CSV 文件,并将该条目添加到 zip 文件中。这是我的问题:
我正在处理大量数据,是否建议在事务开始时打开 zip 流并在事务结束时关闭?如果我这样做,它会将所有这些数据保存在 RAM 中并导致任何内存问题吗?
如果我将这些 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/