成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

閑談.NET Framework Compression功能應用技巧

開發 后端
.NET Framework Compression功能是微軟公司新增的一個功能。可以幫助我們實現文件數據的壓縮等等。下面就一起來看看具體的應用技巧。

.NET Framework能為開發人員提供一個合適的WEB應用程序部署平臺,幫助他們輕松的完成各種程序的開發創建。以前做項目的時候,需要提供文件壓縮功能。當時是使用了一個開源的類庫,名為ZipLib,使用起來還是很方便的。在.Net 2.0中,微軟在System.IO中新增了System.IO.Compression命名空間,.NET Framework Compression功能提供了壓縮功能的相關類GZipStream。 #t#

這個類的使用與一般的文件流使用差不多。我沒有分析其內部實現,但猜測應該還是采用Decorator模式對Stream進行了裝飾,從中應用了.NET Framework Compression功能的算法。它通過Write()方法,將buffer里面的內容寫到另一個文件流中,例如源文件為sourceFile,壓縮后的文件為targetFile,則方法為:

  1. byte[] buffer = null;   
  2. FileStream sourceStream = null;   
  3. FileStream targetStream = null;   
  4. GZipStream compressedStream = null;   
  5. sourceStream = new FileStream
    (sourceFile,FileMode.Open,FileAccess.
    Read,FileShare.Read);   
  6. buffer = new byte[sourceStream.Length];   
  7. sourceStream.Read(buffer,0,buffer.Length);   
  8. targetStream = new FileStream
    (targetFile,FileMode.OpenOrCreate,
    FileAccess.Write);   
  9. //將CompressedStream指向targetStream;   
  10. compressedStream = new GZipStream
    (targetStream,CompressionMode.
    Compress,true);  
  11. compressStream.Write(buffer,0,
    buffer.Length); 

在使用GZipStream時,需要添加引用:

  1. using System.IO; 
  2. using System.IO.Compression; 

.NET Framework Compression功能的解壓縮與前面的方法差不多,仍然使用GZipStream文件流:

 

  1. // Read in the compressed source stream   
  2. sourceStream = new FileStream 
    ( sourceFile, FileMode.Open );   
  3. // Create a compression stream pointing 
    to the destiantion stream   
  4. decompressedStream = new GZipStream 
    ( sourceStream, CompressionMode.
    Decompress, true );   
  5. // Read the footer to determine the 
    length of the destiantion file   
  6. quartetBuffer = new byte[4];   
  7. int position = (int)sourceStream.Length - 4;  
  8. sourceStream.Position = position;   
  9. sourceStream.Read ( quartetBuffer, 0, 4 );  
  10. sourceStream.Position = 0;   
  11. int checkLength = BitConverter.ToInt32 
    ( quartetBuffer, 0 );   
  12. byte[] buffer = new byte[checkLength + 100];   
  13. int offset = 0;   
  14. int total = 0;   
  15. // Read the compressed data into the buffer   
  16. while ( true )   
  17. {   
  18. int bytesRead = decompressedStream.Read 
    ( buffer, offset, 100 );   
  19. if ( bytesRead == 0 ) break;   
  20. offset += bytesRead; total += bytesRead;   
  21. }   
  22. // Now write everything to the destination file  
  23. destinationStream = new FileStream 
    ( destinationFile, FileMode.Create );   
  24. destinationStream.Write ( buffer, 0, total );   
  25. // and flush everyhting to clean out the buffer  
  26. destinationStream.Flush ( ); 

怎么樣,通過對.NET Framework Compression功能的介紹,大家應該基本掌握了其中的應用技巧了吧。

責任編輯:曹凱 來源: IT168
相關推薦

2010-01-06 18:54:41

脫離.Net Fram

2010-01-05 10:17:35

.NET Framew

2010-01-05 15:00:30

.NET Framew

2010-01-06 10:23:47

.NET Framew

2010-01-05 16:20:46

.NET Framew

2010-01-06 17:02:28

.Net Framew

2010-01-05 17:30:23

.NET Framew

2010-01-05 17:59:54

.NET Framew

2010-01-06 18:33:56

.Net Framew

2010-01-05 10:55:50

.NET Framew

2010-01-06 19:18:22

.NET Framew

2009-12-10 14:04:09

.Net Framew

2010-01-05 15:35:21

.NET Framew

2010-01-06 09:54:30

.NET Framew

2009-12-31 15:13:47

Silverlight

2010-01-05 15:27:04

.NET Framew

2010-01-07 17:18:19

VB.NET cstr

2010-01-05 16:31:45

.NET Framew

2009-12-30 10:25:03

Silverlight

2009-08-05 10:17:55

ASP.NET TheASP.NET開發技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色大片在线 | 福利视频网址 | 色综合天天网 | 亚洲成av片人久久久 | 成av在线| 日本午夜免费福利视频 | 久久丁香| 亚洲看片 | 不卡一区| 欧美手机在线 | 黄色一级视频 | 伊人精品 | 人人人人干 | 国产91久久久久蜜臀青青天草二 | 精品视频在线观看 | 美女高潮网站 | 欧美男人亚洲天堂 | 男女激情网站免费 | 成人激情视频网 | 91免费观看在线 | 日韩欧美在线免费观看视频 | 成年网站在线观看 | 日韩天堂av | 免费黄色日本 | 99re视频在线免费观看 | 国产精品久久久久无码av | 国产一区二区三区在线 | 中文字幕一区二区三区精彩视频 | 国产999精品久久久久久 | 精品国产一区二区三区成人影院 | 国产91精品久久久久久久网曝门 | 97精品视频在线 | 99re在线视频| 亚欧洲精品在线视频免费观看 | 在线一区视频 | 国产精品久久二区 | 国产精品96久久久久久 | 观看av | 欧美一区二区三区视频在线播放 | 日韩欧美专区 | 国产激情精品视频 |