分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

简介: 原文: 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件  import java.util.zip.*; import java.
原文: 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

 

import java.util.zip.*;   
import java.io.*;       
public class ZipIt {       
	public static void main(String args[]) throws IOException { 
		if (args.length < 2) {              
			System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");               
			System.exit(-1);           
			}           
		File zipFile = new File(args[0]);           
		if (zipFile.exists()) {               
			System.err.println("Zip file already exists, please try another");
			System.exit(-2);          
			}           
		FileOutputStream fos = new FileOutputStream(zipFile);           
		ZipOutputStream zos = new ZipOutputStream(fos);           
		int bytesRead;           
		byte[] buffer = new byte[1024];           
		CRC32 crc = new CRC32();           
		for (int i=1, n=args.length; i < n; i++) {               
			String name = args[i];               
			File file = new File(name);               
			if (!file.exists()) {                   
				System.err.println("Skipping: " + name);                   
				continue;               
				}               
			BufferedInputStream bis = new BufferedInputStream( new FileInputStream(file));               
			crc.reset();               
			while ((bytesRead = bis.read(buffer)) != -1) {                   
				crc.update(buffer, 0, bytesRead);               
				}               
			bis.close();               
				// Reset to beginning of input stream               
			bis = new BufferedInputStream(new FileInputStream(file));               
			ZipEntry entry = new ZipEntry(name);               
			entry.setMethod(ZipEntry.STORED);              
			entry.setCompressedSize(file.length());               
			entry.setSize(file.length());               
			entry.setCrc(crc.getValue());               
			zos.putNextEntry(entry);              
			while ((bytesRead = bis.read(buffer)) != -1) {                   
				zos.write(buffer, 0, bytesRead);              
				}               bis.close();           
				}           
		zos.close();       
				}   
	} 
		}
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录
相关文章
|
12月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
337 2
|
10月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
423 98
|
Java API 数据安全/隐私保护
手机无人直播手机用啥软件,抖音快手无人直播工具,jar代码分享
这个无人直播系统包含视频处理、直播推流和自动化控制三个核心模块。使用mvn package命
|
10月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
382 1
|
11月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
380 0
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
373 0
|
存储 人工智能 Java
java之通过Http下载文件
本文介绍了使用Java实现通过文件链接下载文件到本地的方法,主要涉及URL、HttpURLConnection及输入输出流的操作。
826 0
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
3062 2
[JarEditor]可直接修改jar包的IDEA插件
|
弹性计算 Java Serverless
Serverless 应用引擎操作报错合集之上传自定义JAR包,启动时报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。