如何使用Java进行文件压缩?
作者:SunnyJourney
时间:2023-04-30
浏览:1
代码如下:publicstaticvoidzipFilePip(){longbeginTime=System.currentTimeMillis();try(WritableByteChannelout=Channels.newChannel(newFileOutputStream(ZIP_FILE))){Pipepipe=Pipe.open();//异步任务CompletableFuture.runAsync(()->runTask(pipe));//获取读通道ReadableByteChannelre
本文目录
代码如下:
public static void zipFilePip() {
long beginTime = System.currentTimeMillis();
try(WritableByteChannel out = Channels.newChannel(new FileOutputStream(ZIP_FILE))) {
Pipe pipe = Pipe.open();
//异步任务
CompletableFuture.runAsync(()->runTask(pipe));
//获取读通道
ReadableByteChannel readableByteChannel = pipe.source();
ByteBuffer buffer = ByteBuffer.allocate(((int) FILE_SIZE)*10);
while (readableByteChannel.read(buffer)>= 0) {
buffer.flip();
out.write(buffer);
buffer.clear();
}
}catch (Exception e){
e.printStackTrace();
}
printInfo(beginTime);
}
//异步任务
public static void runTask(Pipe pipe) {
try(ZipOutputStream zos = new ZipOutputStream(Channels.newOutputStream(pipe.sink()));
WritableByteChannel out = Channels.newChannel(zos)) {
System.out.println("Begin");
for (int i = 0; i < 10; i++) {
zos.putNextEntry(new ZipEntry(i+SUFFIX_FILE));
FileChannel jpgChannel = new FileInputStream(new File(JPG_FILE_PATH)).getChannel();
jpgChannel.transferTo(0, FILE_SIZE, out);
jpgChannel.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
作者最新文章
漫蛙下载最新版本
2026-10-13 13:42
漫蛙app下载安装最新版
2026-10-13 13:42
漫蛙2漫画APP免费下载安装最新版本
2026-10-13 13:20
漫蛙漫画网页下载安装最新版本
2026-10-13 13:17
keyshot快捷键命令大全表格整理与使用教程
2026-10-12 14:13
上一篇:
Java中锁的实现方式有哪些
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































