java创建一个大文件,java - 用Java创建包含大文件的目录 - 堆栈内存溢出

他们谈论将zip文件视为文件系统,并通过这种方式提供了递归压缩文件和文件夹的密钥,如您在链接中提到的示例中所看到的,将被视为文件系统,可以使用java.nio进行访问(甚至我都不知道!)。

此外,您可以像通常那样使用File.copy来将任何文件复制进文件系统或从文件系统中移出,但是可以通过编程方式进行。

注意:如果时间允许,我将创建一个与我们相同的示例程序,并将其发布在此处,直到那时,您绝对可以看看这种方法。

方法#1-未使用,因为它使用了外部库

请查看下面的以下仓库,如果您可以在项目中使用外部库,可以处理很多情况(因为您没有在问题中提到要局限于使用香草java)仅),那么这应该对您有所帮助。

他们还以您在问题中提到的10MB为例。

zipFile.createSplitZipFile(filesToAdd, zipParameters, true, 10485760); // using 10MB in this example

you can also get it from maven

net.lingala.zip4j

zip4j

2.2.4

Here, is an example and the output, 1.dat is 109mb file

-rw-r--r-- 1 apachemain staff 109M Nov 15 18:00 1.dat

package org.example;

import net.lingala.zip4j.ZipFile;

import net.lingala.zip4j.exception.ZipException;

import net.lingala.zip4j.model.ZipParameters;

import net.lingala.zip4j.model.enums.CompressionMethod;

import net.lingala.zip4j.model.enums.EncryptionMethod;

import java.io.File;

import java.util.Arrays;

import java.util.List;

public class CreateSplitZipFile {

public CreateSplitZipFile() {

try {

// Initiate ZipFile object with the path/name of the zip file.

// Build the list of files to be added in the array list

// Objects of type File have to be added to the ArrayList

ZipParameters zipParameters = new ZipParameters();

zipParameters.setEncryptFiles(true);

zipParameters.setEncryptionMethod(EncryptionMethod.AES);

zipParameters.setCompressionMethod(CompressionMethod.STORE);

List filesToAdd = Arrays.asList(

new File("1.dat")

);

ZipFile zipFile = new ZipFile("filename.zip", "password".toCharArray());

zipFile.createSplitZipFile(filesToAdd, zipParameters, true, 10485760); // using 10MB in this example

} catch (ZipException e) {

e.printStackTrace();

}

}

/**

* @param args

*/

public static void main(String[] args) {

new CreateSplitZipFile();

}

}

OUTPUT

=======

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z01

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z02

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z03

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z04

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z05

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z06

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z07

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z08

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z09

-rw-r--r-- 1 apachemain staff 10M Nov 16 10:26 filename.z10

-rw-r--r-- 1 apachemain staff 8.6M Nov 16 10:26 filename.zip

am also seeing the following exception after the creation of the zip files.

net.lingala.zip4j.exception.ZipException: java.io.FileNotFoundException: null/filename.z01 (No such file or directory)

at net.lingala.zip4j.tasks.AsyncZipTask.performTaskWithErrorHandling(AsyncZipTask.java:49)

at net.lingala.zip4j.tasks.AsyncZipTask.execute(AsyncZipTask.java:36)

at net.lingala.zip4j.ZipFile.createSplitZipFile(ZipFile.java:152)

at org.example.CreateSplitZipFile.(CreateSplitZipFile.java:32)

at org.example.CreateSplitZipFile.main(CreateSplitZipFile.java:44)

Caused by: java.io.FileNotFoundException: null/filename.z01 (No such file or directory)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值