在Java中解读压缩文件

Java压缩与解压缩ZIP文件 小而美的使用JDK自带的ZIP工具包生成与解压缩ZIP文件 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 近来,我被安排从事一项很重要的工作:把Web日志放入SQL数据库中进行分析,不巧的是,这些日志文件是GZIP格式,每一次请求信息都被加密,需要解析。我一直认为Java是做好的程序语言,所以我决定编一个程序来解析这些日志文件。 我一直担心解析加密文件的解压缩过程,所以我决定察看一下J2SDK 1.3.1 API文档,看看是否有帮助,在Java.util压缩包的右侧列表中正好有Java.util.jar和Java.util.zip package,本文中我主要谈谈解读压缩文件并轻松演示一下。 Java.util.zip压缩包 Java.util.zip压缩包对读写ZIP和GZIP格式文件提供了分类,从这些格式中读取文件就需要创建合适的 InflaterInputStream,先以GZIP格式为例。 GZIPInputStream可以以InputStream (象FileInputStream)为例,在我的例子中,我想要读取一个文件中的一行这样我就要用StringTokenizer解析每一个entry,为了达到这一目的,我采用在代码下创建BufferedReader的方法。(见 表A中的所有源代码) gzipReader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(fileName)))); 这行代码可以让我们同时在一行中读取整个文件,看一下下面的结果: C:/>java Zip test.txt.gz contents of test.txt.gz... line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. line of this test file that is compressed. 这是GZIP格式的文件,ZIP文件是一个小陷阱,因为你可以包含一个或更多的文件,ZipFile类可以简化一个文件的重复情况,ZipFile object可以由File object或说明文件名和路径的String来创建。ZipFile可以提供大量的ZipEntry objects,从中,可以得到文件的一些值(比如文件大小、压缩比例等等)。ZipFile和ZipEntry结合使用, 可以得到GZIPInputStream来读取整个目录内容见 表B。 也可以采用同样的方式读取上面提到的GZIP文件。 Java.util.jar压缩包 Java.util.jar压缩包对读写JAR (Java 文档)格式文件提供了分类,这是基于ZIP文件的标准格式,压缩包中的大多数类都扩展了Java.util.zip压缩包的副本。从JAR文件中读信息与从ZIP中读信息非常相似,JarFile类与ZipFile类功能相同。(实际上是演变过来的) JarFile详细的清单,见表A,创建了JarFile的同时也就生成了详细的清单目录,之后,每一个entry都按与前面例子中ZIP文件相同的方式来读取信息(毕竟他们都是ZIP文件),你可能会注意到代码中包含检查entry是否是一个目录的语句,这一方法在ZipEntry类中也有,在创建并读取InflaterInputStream之前核实一些entry是否是目录路径。 节省时间和空间 解析加密需要一定的过程,从InflatorInputStream中读取信息可以节省时间和磁盘空间。我要处理的文件是非常大的(30 MB压缩, 150 MB未压缩)。直接读取压缩文件,那么在读之前就没有时间来解压缩,同时磁盘也没有足够的空间了。首先,如果文档非常小,应用API是很困难的,但是搜索一下Java论坛,就会有拨云见日的感觉。下一个逻辑步骤就是往压缩文件中写数据,在下一篇文章中,我会很高兴地为大家说明这一问题。
java实现调用方法解压和压缩给定的文件夹方法 java实现解压和压缩的方法 阅读详情

相关推荐

Java 生成与解析大疆无人机 KMZ 航线文件

KMZ 航线文件本质上是一个 ZIP 格式的压缩文件,一个标准的 KMZ 文件结构如下。arduino代码解读复制代码res:资源文件夹,用来存储航线所需的辅助资源文件(如图片、数据等)。template.kml:模板文件,定义了航线的业务属性,便于用户快速编辑和调整。waylines.wpml:执行文件,包含了无人机执行航线任务时的具体执行细节。

rgrt868的博客 1491

【Java-压缩文件的解析方式】

2.jar包:本身是一个压缩包,里面转的都是class文件,我们想使用jar包中的工具类,就需要将相应的jar包解压到我们的当前项目下。1.Apache软件基金会属于第三方,使用第三方开发出来的工具,都需要添加第三方提供给我们的jar包。那么针对格式的不同,他们使用的jar包和方法也有所不同。c.对着jar包,右键 -> Build Path -> add as library。d.level可以选择module,此时上面叫做name的输入框会变成空的,不用管。b.将准备好的jar包,放到此文件夹下。

2301_78794952的博客 1272

IntelliJ IDEA 配置 Java 开发服务器的方法

在 Java 开发过程中,配置一个合适的开发服务器是至关重要的。开发服务器能够为我们提供一个运行和测试 Java Web 应用程序的环境,帮助我们及时发现和解决问题。IntelliJ IDEA 作为一款强大的 Java 集成开发环境(IDE),支持多种 Java 开发服务器的配置。本文的目的就是详细介绍如何在 IntelliJ IDEA 中配置常见的 Java 开发服务器,范围涵盖了配置的基本步骤、相关概念、代码实现以及实际应用等方面。

AI开发架构师 1210

java不解压压缩包的前提下,解析压缩包内容

近期工作过程中,遇到了一个需要解析压缩包的功能开发。对于这个功能,如果频繁的解压压缩包,在性能上多少有些损耗,且解压文件,会产生大量中间文件,不适合后续管理。特别是现在都是基于容器化部署,如果文件操作处理不当,导致删除失败,将很快打满容器磁盘容量,引起容器崩溃重启。 综合考虑之后,采用ArchiveInputStream,在不解压文件的前提下,解析压缩包。 具体实践如下。 整体流程 从SFTP获取压缩包 读取压缩包文件内容 删除本地压缩包文件 从SFTP获取压缩包文件 添加项目依赖,使用jcraft包来

猫舍 1209

深度解读基于commons-compress解压文件——7z与常规解压

java解压文件的方式有很多种,Apache官方提供了一个工具,可以用来解压很多类型的文件。该工具可以解压和压缩带密码的7z文件,并支持ar, arj, cpio, dump, tar, zip 等文件的压缩和解压。本文将带你深入common-compress底层来探究底层是如何解压文件的。

qq_43851684的博客 7207

Java JDK是什么?

JDK是SUN提供的一套Java开发环境,全称JavaDevelopmentKit,简称JDK,它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。 以下是关于JDK8,13,15特性解析教程。 JavaJDK新特性详解系列教程 JDK8新特性解析 JDK 13新特性解析 JDK15新特性全方位解读 在JDK安装完毕后,会在硬盘上生成一个目录,该目录被称为JDK的安装目录,如图。 为了更好地学习JDK,初学者需要对JDK安装目录下的子目录及文件的作用

Aa112233aA1的博客 1411

java 不解压 读取压缩包文件_java解压缩文件和不解压读取压缩文件中的文本文件内容...

java解压缩文件和不解压读取压缩文件中的文本文件内容java解压缩文件和不解压读取压缩文件中的文本文件内容解压缩(压缩文件中不带文件夹)public void unZip(String fileName){try {ZipInputStream zis = new ZipInputStream(new FileInputStream(new File(fileName)));BufferedIn...

weixin_42468240的博客 896

qingmi-源码压缩文件解析与实战

本文还有配套的精品资源,点击获取 简介:qingmi-源码.rar 是一个可能包含名为“qingmi”项目源代码的RAR压缩文件。RAR 是一种文件压缩格式,用于将多个文件打包成单一可下载文件,便于存储和传输。解压后,可预期找到源代码文件(如 .java, .py, .cpp 等),配置文件,资源文件和项目构建脚本。压缩包可能包含项目基本信息、源代码、资源、配置文件、测试文...

weixin_35826166的博客 1377

java获取压缩后文件大小

Java获取压缩后文件大小 在Java编程中,压缩文件是一种常见的操作,尤其是在处理大文件时。压缩文件不仅可以减少占用的存储空间,还可以加快网络传输速度。了解如何获取压缩后文件的大小对程序的性能和存储效率具有重要意义。本文将介绍在Java中如何获取压缩后文件大小,并给出相关的代码示例和图示。 压缩文件的基本知识 压缩文件一...

weixin_36635454的博客 534

qf-user.zip解压缩分析

在IT行业中,压缩文件是将多个文件或目录进行压缩处理,以节省存储空间和加快网络传输速度的文件格式。常见的压缩文件格式包括.zip、.rar、.7z等。它们广泛应用于软件分发、数据备份、邮件附件发送等场景。压缩文件不仅可以减小文件体积,还能够将多个文件打包成一个文件方便传输。IntelliJ IDEA是Java开发者广泛使用的一个集成开发环境(IDE),提供强大的项目管理功能和代码编辑辅助。在IntelliJ IDEA项目中,多种配置文件共同维持着项目的结构、设置和个性化信息。

weixin_36464343的博客 649

DQN网络代码调用env.reset()后存储观测信息报错问题ValueError: setting an array element with a sequence.解决处理

**reset()函数返回的是一个array类型以及其中数据的type!模拟游戏进行学习任务。因此需要将observation指定为真正需要的array信息即可,得到的的变量observation类型与Agent存储时的。因此怀疑返回的observation有问题,于是通过。报错信息提示为数据维度不对应,也即最初通过。在强化学习DQN网络代码实现过程中,针对。

Vulcan_Q的博客 4093

java代码顺序执行命令_将小程序安装到Java卡的APDU命令的顺序是什么?

While the oracle documentation proposes a different sequence of APDUcommands for installing the .CAP file: Select( Issuer Security Domain?) , CAP begin, Component ## Begin+Data+End ( for each componen...

weixin_39921131的博客 242

NT35310 - LCD显示屏

NT35310 是一个低功耗、26 万色、单芯片的 TFT-LCD 控制器/驱动器,分辨率 480*320,它有一个 345600 字节的显示 RAM 和一整套控制功能。NT35310 支持数字接口(MDDI),MIPI 接口,RGB 接口,8 / 9 / 16 / 18 位8080 接口。可以实现指定的窗口区域可以有选择地更新,以便可以显示运动图像。同时也可以独立显示静止的图像区域。...

m0_62444125的博客 3326

C#压缩文件解压文件

C#压缩文件Java解压文件 源起:最近在做项目时遇到C#和java交互文件处理,C#使用 ICSharpCode.SharpZipLib将文件压缩,Java使用java.util.zip解压文件,前提要求java解压时必须使用UTF-8的编码格式,因此也就需要C#压缩文件时使用UTF-8编码(那么不使用会出现什么问题?) 这个问题其实就涉及到了一些编码的问题,常见的我们都知道ASCII、GBK、UTF-8等等。。。 那么为什么会乱码,根本原因就是字节不同导致在解读时产生了不同的解读方式,这里给大家分享一

qq_38251913的博客 1236

sap销售发货的流程_SAP销售订单发货后如何实现发票的自动创建?

问SAP销售订单发货后如何实现发票的自动创建?答业务场景有些快消零售企业,SAP系统单据量大,单据金额少,一般在销售发货后即可确认收入。此时无需人工在系统内操作VF01或者VF04进行开票操作,可将该操作设置成后台作业进行自动批量开票,具体操作如下:1、定义任务:VF06输入完以上信息,点击保存进入以下界面:说明:当前日期的意思是“开票的日期”等于“系统电脑中的当前日期”当前日期+/-...

weixin_42358409的博客 3368

2024最新版:MacOS Sonoma系统下CocoaPods安装全攻略(解决Ruby版本冲突)

本文详细介绍了在MacOS Sonoma系统下安装CocoaPods的全过程,重点解决Ruby版本冲突问题。通过HomeBrew安装最新Ruby版本,配置环境变量,并正确安装CocoaPods,帮助iOS开发者顺利管理项目依赖。文章还提供了常见问题的解决方案和优化配置建议,确保开发环境的稳定性和高效性。

lll78的博客 1042

java 解读zip文件,获取压缩包内各文件的流的集合

解读zip文件,把zip文件内的众文件转化成流集合,方便其他后续操作

yssa1125001的博客 3941

AI故障预测系统架构设计:5个核心模块+3种主流架构,收藏这篇就够了

深夜11点,某汽车工厂的生产线突然停机——核心机器人的轴承磨损过度导致卡壳。维修人员连夜抢修,直接损失超过50万元,还延误了客户的交货期。传统的“事后维修”或“定期维护”要么代价高昂,要么防不胜防。AI故障预测系统的出现,让“精准维护”成为可能——它能通过传感器数据提前7-30天预警故障,将停机损失降低80%以上。知道要做故障预测,却不知道怎么搭系统——数据怎么采集?特征怎么提取?模型怎么部署?架构怎么选?本文将解决这些问题:我们会拆解AI故障预测系统的5个核心模块,分析3种主流架构。

AIGC应用创新大全的博客 1020

ZIP压缩文件的解压

//UnZip1和UnZip2两个程序使用了两种方式解压zip文件 // Zip程序用来将文件压缩为zip文件 // 解压缩时// zip文件本身的文件名可以包含中文,zip文件内的文件的内容也可以包含中文// 但在zip文件内不能有名称包含中文的文件和目录,否则解压程序会报错// 这是Java类库的一个漏洞,对zip文件内的文件和目录的名称的解读方式有问题// 可以通过修改ZipInputStr...

♂♀ 236

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5559

Mybatis面试题(基础篇)

(1)mybatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。(2)mybatis避免了几乎所有的JDBC代码(说明了mybatis底层用的就是JDBC,只不过是封装了)和手动设置参数以及获取结果集。(3)mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的pojo映射成数据库中的记录。

qq_38196449的博客 1688

Android 压缩文件成ZIP并分享到微信

关于Android文件存储路径: 参考:https://blog.youkuaiyun.com/u010937230/article/details/73303034/ 1、Environment.getDataDirectory() = /data 这个方法是获取内部存储的根路径 2、getFilesDir().getAbsolutePath() = /data/user/0/packname/files 这个方法是获取某个应用在内部存储中的files路径 3、getCacheDir().getAbsoluteP

RandowWrite 3595

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

Java学习—初入Java

一、初入Java 1、Java简介 Java是一种高级计算机语言,它是由Sun公司(已被Oracle公司于2009年4月20日收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java语言简单易用、安全可靠,自问世以来,与之相关的技术和应用发展得非常快。在计算机、移动设备、家用电器等领域中,Java技术无处不在。 针对不同的开发市场,Sun公司将Java划分为三个技术平台,它们分别是Java SE、Java EE和Java ME。 ● Java SE(Java Platfo

虎康的博客 649

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

从零开始掌握JavaSDK源码下载:官方文档解读与实践

下载并阅读Java SDK源码,是打开Java技术黑盒的钥匙。从简单的src.zip到复杂的Git仓库,选择适合你的路径。将其与强大的IDE调试功能相结合,持之以恒地探索java.io等核心包,你的技术视野和深度必将得到质的飞跃。不要再停留在“会用”的层面,现在就行动起来,开启你的源码阅读之旅吧!参考资料OpenJDK官方官网OpenJDK GitHub仓库IntelliJ IDEA官方文档 - 配置SDK希望本文能为你提供清晰的指引。如果在实践过程中遇到任何问题,欢迎在评论区留言交流!HashSet。

2501_93833390的博客 653

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java文件格式

*.java文件是保存源代码的文本文件 (*代表类名) 使用 javac *.java可以编译该文件 使用 java *可以运行该类 *.class是用于保存 Java类的 二进制编码以及Class对象,每一个 Java类都有一个解释该类特征的 Class对象。 *.jar文件 是一种压缩文件格式 打包命令 j...

286

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: Java支持者发誓绝不向微软投降
下一篇: Sun的第22条军规
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值