使用Java API压缩和解压缩数据-Java基础-Java-编程开发

HDFS分布式文件系统(2)Java API操作HDFS Java API操作HDFS 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

许多资料来源中都含有多余数据或对存储信息无用的数据。这常常造成客户机 和服务器应用程序间或电脑间浩如烟海的数据传输。很明显,数据存储和信息传 输问题解决办法是,安装辅助存储装置并扩展现有的通信设备。然而,要做到这 一点,就需要增加组织的运行费用。减轻部分数据存储和信息传输的方法之一是, 以更有效的代码表示数据。本文简要介绍数据压缩和解压缩,以及如何有效地、方便地从JavaTM应用程序内部使用 java.util.zip包压缩和解压缩数据。

虽然 WinZip、gzip和Java ARchive(或 jar)等工具可以用来压缩和解压缩数据,这些工具仍被用作独立 的应用程序。从 Java 应用程序中可以调用这些工具,但并非是简捷有效的解决 方法。在希望迅速地(如在传输到远程机器之前)压缩和解压缩数据的情况下, 尤其如此。本文将:

简要综述数据压缩

描述java.util.zip包

介绍如何使用这些包压缩和解压缩数据

介绍如何压缩和解压缩已序列化的对象以节省磁盘空间

介绍如何迅速压缩和解压缩数据,以提高客户/服务器应用程序的性能

概述数据压缩

文件冗余最单一的类型是字符的重复。例如,下列字符串:

BBBBHHDDXXXXKKKKWWZZZZ

可以更简洁地对本字符串进行编码,方法是以重复字符和代表其重复次数的数 字代替每个重复字符串。因此,上述字符串可以编码为:

4B2H2D4X4K2W4Z

这里的" 4B "表示4个B,而2H表示2个H,等等。以这种方法压缩字符串的编码 方式叫做运行长度编码。

另一个例子,是矩形图像存储。因为是单色位图图像,所以按图表1所示存储。

图表1∶带运行长度编码信息的位图

第二种方法是将图像存为图解元文件∶

矩形11、3、20、5

它表示,该矩形起始坐标是(11, 3),宽度是 20 像素,长度是 5 像素。

矩形图像可以通过计算相等字节的方式,以运行长度编码进行压缩,如下:

0, 40

0, 40

0,10 1,20 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,1 0,18 1,1 0,10

0,10 1,20 0,10

0,40

上面的第一行表示,位图的第一行由40个0组成。第三行表示,位图的第三行 由10个0组成,继之以20个1、10个0组成,诸如此类。

注意,运行长度编码要求对其文件及其编码版本分别表示。所以,本方法不 适用于所有文件。其他的压缩技术包括变长编码(亦称霍夫曼编码)和等其它编 码。更多信息,请参看数据和影象压缩技术的相关书籍。

数据压缩的好处很多。不过,基本的好处是减少存储需求。此外,对于数据 通信,通过介质传递压缩数据会导致信息传输率的增加。注意,数据压缩可以 在现有的硬件上通过软件或采用结合了压缩技术的专门硬件设备完成。图形2显 示了基本的数据压缩方块图。

图形2∶数据压缩方块图

ZIP vs. GZIP

如果使用的是 Windows,就会很熟悉 WinZip 工具,该工具用来创建压缩文 件和从压缩文件中提取文件。不过,在UNIX上,细节有些有点不一样。tar 命令 用来创建文件(非压缩),而另一个程序(gzip或压缩)用来压缩 文件。

WinZip和PKZIP之类的工具既用作归档器,也用 作压缩器。它们将文件压缩并存储在文档中。另一方面,gzip并不 存档文件。因此,在 UNIX 上,tar命令通常用来创建文档,然后 用gzip命令来压缩存档文件。

java.util.zip 包

Java 为兼容 zip 的数据压缩提供 java.util.zip包。它提供 允许读取、创建并修改ZIP和GZIP文件格式的类。此外,提供用于计算任意输入流 校验和的应用类,该类可用于确认输入数据。这个包有一个界面、14个类和2个异 常类,如表1所示。

表 1∶java.util.zip 包

项目 类型 描述

Checksum 界面 由Adler32和CRC32类实现

Adler32 类 用于计算数据流的 Adler32 检验和

CheckedInputStream 类 维持正在读取的数据检验和的输入流。

CheckedOutputStream 类 维持写入数据的检验和的输出流。

CRC32 类 用于计算数据流的 CRC32 检验和

Deflater 类 支持使用 ZLIB 压缩库的常规压缩

DeflaterOutputStream 类 以紧缩压缩格式压缩数据的输出流过滤器

GZIPInputStream 类 文件格式压缩数据的输入流过滤器。

GZIPOutputStream 类 文件格式压缩数据的输出流过滤器。

Inflater 类 支持使用 ZLIB 压缩库的常规解压缩

InlfaterInputStream 类 解压紧缩压缩格式数据的输入流过滤器

ZipEntry 类 代表ZIP压缩文件条目

ZipFile 类 用于从ZIP文件中读取条目

ZipInputStream 类 读取ZIP文件格式文件的输入流过滤器

ZipOutputStream 类 以ZIP文件格式写入文件的输出流过滤器

DataFormatException 异常类 给出数据格式错误的信号

ZipException 异常类 给出 zip 错误的信号

注意: TZLIB压缩库最初是作为“可移植的网络图象文件格式”(PNG) 标准的一部分进行开发的,该标准不受专利的保护。

Java压缩与解压缩ZIP文件 小而美的使用JDK自带的ZIP工具包生成与解压缩ZIP文件 阅读详情

相关推荐

Java使用Zstandard压缩算法对字节数组进行压缩和解压缩

最近在做项目的时候,因为项目部署在国外,又是公网的环境,流量费用很贵,所以需要使用Netty对传输的数据进行压缩和解压缩,准备用Facebook的Zstandard试试性能,听说压缩性能好,还可以根据需求调整压缩比。然而在网上搜索了一阵子发现,java通过zstd对字节数组做压缩和解压缩的例子很少,仅有的几个给出的API还都是错误的,更别说跑通了,就算使用Gpt3.5和4.0给的的示例也是错误的,所以干脆写篇文章记录一下。

知秋的博客 2156

HDFS Java API压缩和解压缩文件

使用 Java API 对 HDFS 中的 hdfs://localhost:9000/total.csv 文件按照 gzip 格式压缩。压缩后的目录为:hdfs://localhost:9000/total.gz。使用 Java API 对 HDFS 中的 hdfs://localhost:9000/total.gz 文件按照 gzip 格式解压。解压后的目录为:hdfs://localhost:9000/total。

m0_52680439的博客 2131

使用zlib实现gzip格式数据的压缩和解压

注意代码中的注释部分,这里设置是专门针对gzip的,缺少了就不行了,gzip压缩格式和其他格式的区别就在这里。 Bytef 就是 unsigned char,uLong就是 unsigned long,这些别名的设置都在zconf.h文件里面。这里压缩和解压缩的数据都可以用java的GZIPInputStream和GZIPOutputStream来对应解压缩和压缩。代码片 #ifndef GZIP

未语愁眸 9791

头歌实验 HDFS的基本操作和Java API 操作

头歌 实验HDFS 的基本操作和 Java API 操作

weixin_61657766的博客 1万+

压缩和解压缩Zip文件

数据传输和存储越来越依赖于文件压缩技术,java.util.zip包提供了压缩和解压缩文件的功能。发送大量数据时,压缩文件可以大大减少传输时间和网络带宽,压缩文件还可以节省磁盘空间。文件压缩指的是将一个或多个文件通过压缩算法,将其存储为一个更小的文件,以便于存储和传输。压缩的原理是通过对文件的数据进行编码和压缩,使其占用更少的空间。压缩后的文件可以通过解压缩算法还原成原始的文件格式。在文件压缩过程中,常见的操作是将多个文件打包成一个压缩文件,例如zip、tar等格式。

Mr.xing的博客 479

轻量级替代方案:用AIFlowy + Ollama在本地快速搭建一个可用的AI智能体平台

本文介绍了如何使用AIFlowy和Ollama在本地快速搭建轻量级AI智能体平台,涵盖从环境准备到智能体集成的全流程。通过简化部署步骤和优化性能,15分钟内即可完成搭建,适用于原型验证和小团队协作,显著提升开发效率。

weixin_29207533的博客 223

使用Java API压缩和解压缩数据

许多资料来源中都含有多余数据或对存储信息无用的数据。这常常造成客户机 和服务器应用程序间或电脑间浩如烟海的数据传输。很明显,数据存储和信息传 输问题解决办法是,安装辅助存储装置并扩展现有的通信设备。然而,要做到这 一点,就需要增加组织的运行费用。减轻部分数据存储和信息传输的方法之一是, 以更有效的代码表示数据。本文简要介绍数据压缩和解压缩,以及如何有效地、方便地从JavaTM应用程序内部使用

1596

机械设计师必看:如何用Autodesk Inventor高效完成钣金设计(附实战案例)

本文为机械设计师详细解析了如何利用Autodesk Inventor Professional高效完成钣金设计。文章通过一个钣金防护罩的实战案例,系统介绍了从核心设计逻辑、建模流程、参数化技巧到工程图输出的完整工作流,旨在帮助设计师掌握智能化的设计方法,显著提升从概念到制造的设计效率与准确性。

honey的博客 1185

Hadoop系统应用之HDFS相关操作 - - Java-API对HDFS的操作(IDEA版)

5.在win系统下不配置hadoop环境,直接运行代码会报错,显示缺少winutils.exe 和 hadoop.dll 两个文件. (文件位于个人主页&8.在windows系统,配置hadoop的环境变量: HADOOP_HOME,并将%HADOOP_HOME%\bin添加到path中.9.把hadoop-2.7.3文件夹中bin目录下的hadoop.dll 放到系统盘: C:Windows \System32目录下。,相关的操作有:文件上传、文件下载、新建文件夹、查看文件、删除文件。

m0_57464618的博客 2408

3.3V-1.8V电平转换测试、以TXS0108E、NPN,NMOS方案为例

上述两个模块都测试过,测试结果相似。信号发生器产生3.3Vpp/10K Hz 方波测试1.8V信号输出结果模块出现顶部失真,原因是因为电平转换芯片需要转换的正电压,转换的方波如果没有设置偏置,会导致信号源的方波电平小于电平转换的所需的触发电平导致波形顶部失真。偏置设置为1.65V输出波形正常。但是模块接上负载后波形又出现顶部失真!!!TXS0108采用弱上拉设计(内部约4 kΩ上拉电阻),其驱动能力类似开漏输出,依赖外部负载完成电平转换。

weixin_56838517的博客 2782

ArcMap对遥感图像进行语义分割标注

使用arcmap对遥感图像进行语义分割标注

qq_41708916的博客 4053

使用Java IO进行压缩和解压缩 | ZIP和GZIP的实现

Java IO中的压缩和解压缩功能主要通过包和方便易用。Java提供了简洁而易于使用的API,使得压缩和解压缩变得简单和方便。

devops 4765

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

weixin_40239644的博客 8707

Java 解压缩流与压缩流:压缩数据的高效利器

在 Java 中,压缩流和解压缩流都是基于包提供的类,它们允许我们对数据进行压缩(缩小数据体积)和解压缩(还原数据)。常见的压缩算法包括 GZIP 和 ZIP,它们在 Java 中被广泛支持。Java 中的这些压缩/解压缩流通常用于处理文件和网络传输中的数据,以减少传输时间和存储空间。

Rockivy的博客 2226

二、NovAtel Connect 2.3.2 版本 操作说明

一、连接方式 有 串口连接、USB连接、蓝牙连接、无线网连接、网口连接,具体的连接方式看博客: https://blog.youkuaiyun.com/hltt3838/article/details/110622732 下面具体的介绍一下 串口的连接方式: 接收机有三个串口,COM1、COM2、COM3,看上面的连接就知道了! 并且有三个对应的线,1 2 3 ; 把线和串口对应连接,串口的另一端和电脑连接,当然如果电脑没有串口,可以用 串口转USB,如线图所示: (当然,一定要连接电源呀) ...

努力努力努力 4384

Python 爬虫实战:豆瓣 / IMDB 电影数据抓取(评分 + 剧情 + 演员阵容结构化处理)

在数据为王的时代,电影数据是进行市场分析、推荐系统构建和学术研究的重要资源。豆瓣和 IMDB 作为国内外最具影响力的电影评分和资讯网站,包含了海量高质量的电影数据。本文将带领你从零开始,构建一个健壮的 Python 爬虫,用于抓取豆瓣和 IMDB 的电影信息,并将其中的非结构化数据(如剧情简介、演员列表)进行清洗和结构化处理,最终存储到便于分析的结构化文件(如 CSV)中。

yansideyucsdn的博客 956

java压缩api_怎样使用JavaAPI压缩和解压缩数据?

许多资料来源中都含有多余数据或对存储信息无用的数据。这常常造成客户机 和服务器应用程序间或电脑间浩如烟海的数据传输。很明显,数据存储和信息传 输问题解决办法是,安装辅助存储装置并扩展现有的通信设备。然而,要做到这 一点,就需要增加组织的运行费用。减轻部分数据存储和信息传输的方法之一是, 以更有效的代码表示数据。本文简要介绍数据压缩和解压缩,以及如何有效地、方便地从JavaTM应用程序内部使用 ja...

weixin_42300040的博客 232

图机器学习(2)——图的可视化

图结构可通过图形化方式直观呈现。节点通常用圆形表示,边则用连接线表示。然而当节点和边数量增加时,绘制清晰的图形表示可能会变得相当困难,这主要源于节点在二维坐标系中的布局问题。对于包含数百个节点的图,手动指定每个节点的坐标显然不切实际。在本节中,我们将介绍如何在不指定每个节点坐标的情况下绘制图形。我们将利用两种不同的解决方案:networkx 和 Gephi。

盼小辉丶的博客 8866

java压缩 c 解压_[Java 基础] 使用java.util.zip包压缩和解压缩文件

Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作。ZipFilejava中的每一个压缩文件都是可以使用ZipFile来进行表示的。Filefile=newFile("F:/zippath.zip");ZipFilezipFile=newZip...

weixin_39956443的博客 192

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JAVA--通过代码实现文件(夹)的压缩与解压(zip&rar)

1、创建压缩流关联压缩包,创建ZipEntry对象,表示压缩包里面的文件,然后把ZipEntry对象放到压缩包当中,到这里相当于已经把压缩包中的框架搭好了2.把文件中的数据写到压缩包中1、创建一个解压缩流用来读取压缩包中的数据,获取到压缩包里面的每一个zipentry对象,如果获取到文件或者文件夹,解压缩流获取的结果就不是null,否则为null。

2301_79500020的博客 3850

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深入探索HarmonyOS文件压缩与解压缩API:从基础到高级应用

在HarmonyOS的分布式架构中,文件压缩不仅关乎存储效率,更直接影响跨设备数据同步的性能。例如,在设备间传输大文件时,压缩可以显著减少网络带宽占用,提升用户体验。HarmonyOS通过和ohos.zlib等模块,提供了对ZIP、GZIP等主流压缩格式的支持。这些API基于流式处理设计,能够无缝集成到分布式任务中,实现设备间的高效数据交换。在实际应用中,我们常需压缩整个目录结构。HarmonyOS的ZipEntry} else {// 设置文件修改时间。

不懂先生的博客 1276

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java 数据 压缩_利用JAVA API函数实现数据的压缩与解压缩

综述许多信息资料都或多或少的包含一些多余的数据。通常会导致在客户端与服务器之间,应用程序与计算机之间极大的数据传输量。最常见的解决数据存储和信息传送的方法是安装额外的存储设备和扩展现有的通讯能力。这样做是可以的,但无疑会增加组织的运作成本。一种有效的解决数据存储与信息传输的方法是通过更有效率的代码来存储数据。这篇文章简要的介绍了数据的压缩与解压缩,并展示了用java.util.zip包来实现数据的...

weixin_31107269的博客 512

api 数据gzip压缩_如何使用GZip和Jersey压缩Java REST API中的响应

api 数据gzip压缩 在某些情况下,您的REST api会提供非常长的响应,我们都知道移动设备/网络上的传输速度和带宽仍然非常重要。 我认为这是开发支持移动应用程序的REST api时需要解决的第一个性能优化点。 你猜怎么了? 因为响应是文本,所以我们可以压缩它们。 借助当今智能手机和平板电脑的强大功能,在客户端上解压缩它们并不是什么大不了的事。因此,在本文中,我将介绍如何使用泽西岛(Je...

最佳 Java 编程 616

在Java中通过压缩流与解压缩流实现文件以及文件夹的压缩与解压缩

在计算机编程中,文件的压缩和解压缩是一项常见的任务。它不仅可以节省存储空间,还可以提高文件传输的效率。Java作为一种广泛使用的编程语言,提供了丰富的API来处理这种任务。在这篇文章中,我们将探讨如何在Java中使用压缩流和解压缩流来实现文件和文件夹的压缩与解压缩。1、创建一个解压缩流用来读取压缩包中的数据,获取到压缩包里面的每一个zipentry对象,如果获取到文件或者文件夹,解压缩流获取的结果就不是null,否则为null。//创建一个解压缩流用来读取压缩包中的数据。

weixin_73644434的博客 2122

java 大数据(压缩和解压) 整理

/** * 压缩文件 * @throws Exception */ @Test public static void znzip() throws Exception { //文件输出流 FileOutputStream fos = new FileOutputStream("E:/img/xx.zip"); //压缩流 ZipOutputStream zos = new ZipOutputStream(fos); //字符串数组 String[] arr= {.

weixin_39559301的博客 842
上一篇: 经典JAVA IDE-Eclips使用秘技-Java基础-Java-编程开发
下一篇: Spring 总结XML配置的十二个最佳实践-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值