引入 google snappy 包
github 上snappy地址 http://github.com/google/snappy
<dependency> <groupId>org.xerial.snappy</groupId> <artifactId>snappy-java</artifactId> <version>1.1.2.6</version> </dependency>
使用snappy压缩文件
import java.io.ByteArrayOutputStream; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.xerial.snappy.Snappy; public class SnappyDemo { public static void main(String[] args) throws Exception { // 待压缩的文件,可以是任意文件 RandomAccessFile raf = new RandomAccessFile("c:/花好月圆夜.mp4", "r"); //压缩后保存的文件 RandomAccessFile w = new RandomAccessFile("c:/cas-server-3.5.2-master.snappy", "rw"); FileChannel channel = raf.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(4096); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); while (channel.read(buffer) > -1) { buffer.flip() ; while(buffer.hasRemaining()){ out.write( buffer.get() ); } buffer.clear() ; } //压缩内容写入 文件,如果文件比较大 压缩后的文件可以分多个文件保存, // 例如hadoop 文件每个块自定义为128M w.write( Snappy.compress(out.toByteArray()) ); raf.close(); w.close(); out.close(); } }
使用snappy解压缩
import java.io.ByteArrayOutputStream; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.xerial.snappy.Snappy; public class UnSnappyDemo { public static void main(String[] args) throws Exception { RandomAccessFile raf = new RandomAccessFile("c:/cas-server-3.5.2-master.snappy", "r"); RandomAccessFile w = new RandomAccessFile("c:/cas-server-3.5.2-master.zip", "rw"); FileChannel channel = raf.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(196); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); while (channel.read(buffer) > -1){ buffer.flip() ; while(buffer.hasRemaining()){ out.write( buffer.get() ); } buffer.clear() ; buffer = ByteBuffer.allocate(196); } w.write( Snappy.uncompress(out.toByteArray()) ); raf.close(); w.close(); } }
相关推荐
描述中提到的"Snapy节点,节点的测试运行程序"进一步确认了Snapy-node是一个针对Node.js环境的测试工具。测试运行程序是自动化测试框架的关键部分,它负责执行预定的测试用例并报告结果,这对于持续集成和持续部署...
**前端开源库 Snapy-File:从文件中获取快照** 在现代Web开发中,前端开发者经常需要处理用户的文件输入,例如图片、文档等。`Snapy-File` 是一个前端开源库,专为实现从文件中快速获取快照而设计。这个库提供了一...
而 `snapy-entry` 正是一个针对 Webpack 的开源库,专门用于设置项目的条目(entry)文件。 Webpack 的条目(entry)配置是项目构建的核心部分,它定义了应用的入口起点,Webpack 会从这些入口出发,递归解析依赖,...
然后,在测试文件中引入Snapy 并编写测试: ```javascript import { test } from 'snapy'; test('MyComponent snapshot', () => { const component = render(); expect(component).toMatchSnapshot(); }); ``` ...
2. **可读流**:Snapy-Stream提供了可读流接口,允许开发者从不同源(如网络请求、文件系统等)获取数据,并以可控的方式消费这些数据。可读流可以被分块读取,从而优化内存使用和性能。 3. **可写流**:与可读流...
2. **导入与初始化**:在你的JavaScript文件中,引入`snapy-cache`库,并进行初始化。例如: ```javascript const cache = require('snapy-cache'); cache.init(); ``` 3. **数据缓存**:使用`set`方法将数据...
**Snapy Obj:前端开发中的对象快照工具** 在前端开发中,我们经常需要调试和对比JavaScript对象的状态,以便理解代码执行的过程和结果。`Snapy-Obj` 是一个专门针对这一需求的开源库,它提供了便捷的方式来捕获和...
在大型应用中,通常会有多个模块,每个模块都有自己的入口文件。Snapy-Entry允许开发者将这些模块的入口按需加载,减少了初始加载时的代码体积,从而提高了页面的加载速度。通过动态加载模块,用户只需要下载他们...
**Snapy-Promise:前端开发中的承诺快照库** 在前端开发中,异步操作是不可或缺的一部分,Promise作为处理异步操作的一种强大工具,已经成为了JavaScript标准库ES6的重要组成部分。Snapy-Promise是一个专门为前端...
"snapy-filter-obj"是一个这样的开源库,专门用于处理对象的过滤操作。这个库的名字“Snapy”可能来源于“Snapshot”,暗示它能帮助我们快速地对对象进行“快照”并应用特定的过滤条件。下面我们将详细探讨这个库的...
**Snapy Node Report:前端开源库的深度解析** Snapy Node Report 是一款专为前端开发者设计的开源库,主要用于收集和分析快照信息,帮助开发者更有效地管理和排查应用中的错误资源。这款工具以其强大的功能和易用...
"Snapy-Obj"是一个前端开源库,主要针对对象(Object)操作进行优化,提供了一系列实用的方法,旨在简化JavaScript中的对象处理。这个库的核心目标是提高开发者在处理复杂数据结构时的效率,同时保持代码的简洁性...
今天我们将聚焦于一个名为"Snapy Transform Obj"的开源库,它在前端开发中扮演着重要的角色,特别是在处理对象数据时。"Snapy Transform Obj"正如其名,主要功能是在对对象进行快照之前对其进行转换,以满足特定的...
`snapy-master` 文件夹很可能是项目的主要源代码目录,包含了项目的配置文件、源码、资源文件等。通常,React 项目会有一个 `src` 目录,其中包含应用的所有组件、样式和配置。`public` 目录可能包含了静态资源,如...
而今天我们要介绍的Snapy: Docs CRX插件,就是这样一款专为文档创建而设计的便捷工具。它不仅支持英语,还具备一系列强大的功能,让制作带有图片说明的文档变得易如反掌。 Snapy: Docs CRX插件的核心功能之一是能够...
这些库文件通常包含了特定的功能实现,如图像捕获或数据压缩,它们被LabVIEW程序调用以完成特定任务。 "readme.txt" 文件通常包含关于如何使用或安装压缩包内容的重要信息,比如步骤、注意事项或者依赖项等。 ...
1. **栅格设置**:执行【Design】->【Board Options】命令设置栅格,如SnapX、SnapY、ComponentX和ComponentY栏的值设为25mil。 2. **层设置**:定义板层和其他非电层,可以显示、添加、删除、重命名以及设置层的...
作者工具仅供交流学习,不能用于商业用途版本更新v2.0 2019/06/22服务端改造成springbootsnappy爬虫能做什么能稳定,准确,快速,集群爬取规则网页的数据,并存储到mysql中。 如爬取酷云电影资源 ,爬取安居客新房和...