java实现哈夫曼编码的文件压缩
2022/4/20 20:12:38
本文主要是介绍java实现哈夫曼编码的文件压缩,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java实现哈夫曼编码的文件压缩
思路见:
java实现哈夫曼编码压缩 - CoderDreams - 博客园 (cnblogs.com)
java实现哈夫曼编码解压 - CoderDreams - 博客园 (cnblogs.com)
新增代码
/** * 压缩文件 * * @param src 压缩文件的全路径 * @param dstFile 压缩后存放的路径 */ private static void zipFile(String src, String dstFile) { FileInputStream is = null; FileOutputStream os = null; ObjectOutputStream oos = null; try { // 创建IO流 is = new FileInputStream(src); // 创建和源文件相同大小的byte数组 byte[] bytes = new byte[is.available()]; // 读取文件 is.read(bytes); // 解压 byte[] huffmanZip = huffmanZip(bytes); // 创建文件输出流存放压缩文件 os = new FileOutputStream(dstFile); // 创建和输出流相关的对象输出流 oos = new ObjectOutputStream(os); // 这里以对象的方式进行输出压缩文件,方便恢复 oos.writeObject(huffmanZip); // 最后将编码表写入 oos.writeObject(huffmanCodes); } catch (Exception e) { System.out.println(e); } finally { try { is.close(); os.close(); oos.close(); } catch (IOException e) { e.printStackTrace(); } } }
测试方法
public static void main(String[] args) { String srcFile = "D:\\图片\\Camera Roll\\1.jpg"; String dstFile = "D:\\图片\\dst.zip"; zipFile(srcFile, dstFile); System.out.println("压缩成功"); }
这篇关于java实现哈夫曼编码的文件压缩的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-10SpringBoot 内部方法调用,事务不起作用的原因及解决办法
- 2024-11-10独立开发者 5 个月,月收入赶超北京工资,我的一点心得
- 2024-11-09程序员 SEO 系列:如何找到更多搜索关键词?
- 2024-11-09为何选择Spring AI Alibaba开发智能客服平台?
- 2024-11-09Sentinel不同的流控效果资料详解
- 2024-11-09Sentinel配置限流资料:新手入门教程
- 2024-11-09Sentinel配置限流资料详解
- 2024-11-09Sentinel熔断规则配置资料详解
- 2024-11-08Sentinel熔断规则配置资料详解
- 2024-11-08Sentinel限流资料入门教程