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