Ratkaistu: gzip-tavutaulukko

Viimeisin päivitys: 09/11/2023
Kirjoittaja: C SourceTrail

Toki, syvennytään GZip-pakkauksen maailmaan C#:ssa.

Termi "GZip" saattaa aluksi tuntua hieman tekniseltä ja pelottavalta, mutta sen konsepti ja toteutus ovat melko yksinkertaisia. Sen ytimessä GZip on tiedostomuoto, jota käytetään yleisimmin tiedostojen pakkaamiseen ja purkamiseen. Verkkokehityksen ja Internetin kautta tapahtuvan tiedonsiirron maailmassa GZipillä on merkittävä rooli lähetettävän tiedon koon optimoinnissa, mikä tekee tiedonsiirtoprosessista nopeamman ja tehokkaamman.

C#-ohjelmointikielessä System.IO.Compression nimitila tarjoaa tarvittavat menetelmät ja luokat GZip-pakkauksen tehokkaaseen käsittelyyn. Sukeltakaamme nyt asiaan miten siitä – GZipin käyttäminen tavutaulukon pakkaamiseen ja purkamiseen.

Ratkaisu Ongelmaan

Tavutaulukon pakkaamiseen käytämme System.IO- ja System.IO.Compression-nimiavaruuksissa GZipStream-luokkaa ja MemoryStream-luokkaa.

[section=code lang=”C#”]

julkinen staattinen tavu[] GZipCompress(tavu[] data)
{
using(MemoryStream ms = new MemoryStream())
using(GZipStream gzip = new GZipStream(ms, CompressionMode.Compress, true))
{
gzip.Write(data, 0, data.Length);
}
return ms.ToArray();
}

Pakatun tavutaulukon purkamiseen GZipillä käytämme jälleen sekä GZipStream- että MemoryStream-luokkia, mutta tällä kertaa kierteellä.

julkinen staattinen tavu[] GZipDecompress(tavu[] data)
{
using(MemoryStream output = new MemoryStream())
using(MemoryStream-tulo = uusi MemoryStream(data))
using(GZipStream gzip = new GZipStream(syöttö, CompressionMode.Decompress))
{
gzip.CopyTo(tulostus);
}
palauttaa output.ToArray();
}

Yllä olevat kaksi koodinpätkää osoittavat ratkaisun tavutaulukon pakkaamiseen ja purkamiseen GZipin avulla C#:ssa.

Vaiheittainen koodin selitys

Puristusmenetelmässä, vaiheet ovat yksinkertaisia:

  • Uusi MemoryStream-esiintymä luodaan.
  • Luodaan uusi GZipStream-ilmentymä, joka käyttää edellä mainittua MemoryStreamia perusvirtana. CompressionMode-asetuksena on "Pakkaa".
  • Tavutiedot kirjoitetaan GZipStreamiin, joka pakkaa ne.
  • Lopuksi pakatut tiedot puretaan MemoryStreamista käyttämällä sen ToArray()-menetelmää.

Dekompressiomenetelmässä:

  • Luodaan MemoryStream-ilmentymä ja pakatut tiedot sisältävä MemoryStream-ilmentymä.
  • GZipStream-ilmentymä luodaan käyttämällä syötettä MemoryStream, ja CompressionMode-asetuksena on "Decompress".
  • Lopuksi purettu data kopioidaan ulostuloon MemoryStream ja palautetaan tavutaulukkona.

GZipStream-luokka

GZipStream-luokka, joka sijaitsee System.IO.Compression-nimiavaruudessa C#:ssa, on tehokas työkalu tietojen pakkaamiseen ja purkamiseen. Se tarjoaa sisäänrakennettuja vaihtoehtoja tarvitsemasi pakkaustason päättämiseen, aina ei-pakkauksesta optimaaliseen pakkaukseen.

MemoryStream-luokka

System.IO-nimiavaruuden alla oleva MemoryStream-luokka edustaa virtaa muistissa. Sitä käytetään yleisesti tavutaulukoista lukemiseen tai niihin kirjoittamiseen ilman taustavaraston tarvetta.

Nämä ovat vain lyhyitä katsauksia näistä aiheista. Ymmärtääksesi täysin näiden kirjastojen mahdollisuudet, sukella syvemmälle virallisiin C# dokumentoida ja kokeilla erilaisia ​​skenaarioita ja käyttötapauksia. Muista, että käytännön kokemus ja kokeilu ovat usein parhaita tapoja oppia ja hallita ohjelmointikonsepteja.

Related viestiä: