今天終于在流系統里面添加了Huffman的壓縮解壓算法,現在只需要將一個LZ77流加到Huffman流上面,就能同時使用兩種壓縮算法進行壓縮了。我的Huffman算法使用了
Canonical Huffman編碼方法進行Huffman樹的生成。
于是做了一下實驗,發現Huffman比LZ77差了稍微一點,不過將LZ77和Huffman結合起來的時候,先LZ77的話,效果有時候比單獨的LZ77好,有時候差。不過要是Huffman先的話,那文件會變大差不多兩倍(囧)。
現在流系統已經擁有以下的類:
1、文件流
2、內存流
3、緩存流
4、重定向流,用于將一個寫操作傳遞給多個流進行寫操作
5、備份流,用于將一個讀操作在交給用戶之前,傳遞給一個流進行寫操作
6、LZ77流
7、Huffman流
8、Socket流
9、Named Pipe流
10、共享內存流
11、按位讀寫器
12、文本讀寫器
12.1、基于字符串對象的文本讀寫器
12.2、基于流對象的文本讀寫器
其中文本讀寫器支持ReadLine、ReadChar、ReadString和ReadToEnd功能。對于使用記事本保存的文本文件,無論字符編碼是什么,均能辨別。不使用這個功能的話,用戶也可以手動指定字符編碼。文本讀寫器還將不規范的換行符格式化成用戶指定的換行符。這樣在讀一個文本流的時候,用戶就可以不必操心一個文本文件所使用的換行符和字符編碼分別是什么了。
posted on 2009-01-10 09:16
陳梓瀚(vczh) 閱讀(3513)
評論(0) 編輯 收藏 引用 所屬分類:
C++