google snapy 压缩文件
程序员文章站
2024-01-16 14:44:52
...
引入 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(); } }
下一篇: 一点回忆(1)
推荐阅读
-
零售业如何用Hadoop开启大数据之门? 算法编程google
-
DT科技评论第40期:“影子经纪人”发布漏洞订阅服务,下一次的全球安全事件会在近期接踵而至吗? 互联网搜索引擎工作google云计算
-
编程世界经典秘籍:程序员的提问之道 搜索引擎google申诉
-
Completely remove jedit 脚本Google工作
-
【blockly教程】第一章 Google Blockly教学应用手册
-
在GOOGLE上创建的GROUP-中国书画艺术论坛 Google
-
google snapy 压缩文件
-
google 浏览器修改安装位置(含Cache)
-
主干开发 google
-
the solution for firefox cannot access google