Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Gzip- ja Zlib-algoritmeja käytetään yleisesti tiedostojen pakkaamiseen ja purkamiseen. Gzipiä käytetään ensisijaisesti yksittäisten tiedostojen pakkaamiseen, kun taas Zlib pakkaa pääasiassa tietovirtoja. Algoritmit käyttävät pakkaamiseen Deflate Compression Algorithmia, vaikka Gzip tarjoaa lisäominaisuuksia, kuten virheiden tarkistuksen ja tiedostojen metatiedot.

Gzip on tarjonnut paremmat pakkaussuhteet kuin Zlib. Gzip vaatii kuitenkin enemmän käsittelytehoa tietojen pakkaamiseen ja purkamiseen. Useimmissa tapauksissa sinun tulee käyttää Gzipiä tiedostojen pakkaamiseen ja Zlibiä tietovirtojen pakkaamiseen.

Go tarjoaa toiminnot tietojen, mukaan lukien tiedostojen, pakkaamiseen puristaa paketti.

Pakkaa paketti

The puristaa paketti tukee tietojen pakkaamista pakkaa/gzip ja pakkaa/zlib paketteja muiden toimintojen ohella.

The gzip paketti tukee gzip-tiedostomuodon tietojen pakkaamista ja purkamista, mukaan lukien luku- ja kirjoitustoiminnot, jotka on määritelty kohdassa

instagram viewer
RFC 1952. Samalla kun zlib paketti auttaa pakkaamaan ja purkamaan tietoja zlib-muodossa.

Voit tuoda gzip ja zlib alkaen puristaa paketti käyttäen tuonti avainsana.

tuonti (
"pakkaus/gzip"// tuo gzip

"compress/zlib"// tuo zlib
)

Tiedostojen pakkaaminen ja purkaminen Gzipillä

Gzip on tiedostomuoto ja ohjelmistosovellus tiedostojen pakkaamiseen ja purkamiseen. Gzip käyttää Lempel-Ziv-Markov-ketjualgoritmia (LZ77) tietojen pakkaamiseen, ja algoritmia käytetään usein tekstitiedostojen, kuten HTML-, CSS- tai JavaScript-tiedostojen, pakkaamiseen.

Tiedostojen pakkaaminen gzip paketti on yksinkertainen ja intuitiivinen. Sinun on avattava tiedosto, luotava gzip-tiedosto, luotava gzip-kirjoitin ja kopioitava alkuperäinen tiedoston sisältö gzip-kirjoittimeen ennen tyhjennystoimintoa, joka varmistaa kirjoitusprosessin saattaa loppuun.

Suorita tämä bash-komento Unix-järjestelmien työhakemiston päätteessä luodaksesi mallitekstitiedoston ja lisätäksesi tekstiä tiedostoon.

// luo tekstitiedoston.
kosketa esimerkki.txt

// ohjaa merkkijonon tiedostoon
echo 'Hei, maailma!' > esimerkki.txt}

Kun olet luonut tiedoston ja lisännyt tekstin, voit tuoda tiedoston gzip, io, ja os paketit pakkaustoimintoa varten.

Näin voit käyttää pakkaa/gzip paketti tekstitiedoston pakkaamiseen.

tuonti (
"pakkaus/gzip"
"io"
"os"
)

funcpää() {
// Avaa alkuperäinen tiedosto
OriginalFile, err := os. Avata("esimerkki.txt")
jos virhe! = nolla {
paniikki(err)
}
lykätä alkuperäinen tiedosto. Kiinni()

// Luo uusi gzip-tiedosto
gzippedFile, err := os. Luoda("esimerkki.txt.gz")
jos virhe! = nolla {
paniikki(err)
}
lykätä gzippedFile. Kiinni()

// Luo uusi gzip-kirjoitin
gzipWriter := gzip. NewWriter (gzippedFile)
lykätä gzipWriter. Kiinni()

// Kopioi alkuperäisen tiedoston sisältö gzip-kirjoittimeen
_, err = io. Kopioi (gzipWriter, alkuperäinen tiedosto)
jos virhe! = nolla {
paniikki(err)
}

// Tyhjennä gzip-kirjoitin varmistaaksesi, että kaikki tiedot on kirjoitettu
gzipWriter. Huuhtele ()
}

The Avata toiminto os paketti avaa tekstitiedoston ja kiinni -toiminto sulkee tiedoston kirjaimella a lykätä lausunto. The Luoda -toiminto luo gzip-tiedoston ja UusiWriter toiminto gzip paketti kirjoittaa tekstitiedoston sisällön gzip-tiedostoon käyttämällä Kopio toiminto io paketti.

The Huuhtele menetelmä gzipWriter instance huuhtelee gzip-kirjoittimen, kun kaikki tiedot ovat saatavilla zip-tiedostossa.

Voit noutaa alkuperäisen tiedoston gzip-tiedostosta purkamalla. Tiedoston purkuprosessi on samanlainen; avaat tiedoston ja luot gzip-tiedoston lukuohjelman. Luo sitten uusi tiedosto pakkaamattomille tiedoille ennen sisällön kopioimista uuteen tiedostoon.

tuonti (
"pakkaus/gzip"
"io"
"os"
)

funcpää() {
// Avaa gzip-tiedosto
gzippedFile, err := os. Avata("esimerkki.txt.gz")
jos virhe! = nolla {
paniikki(err)
}
lykätä gzippedFile. Kiinni()

// Luo uusi gzip-lukija
gzipReader, err := gzip. NewReader (gzippedFile)
lykätä gzipReader. Kiinni()

// Luo uusi tiedosto pakkaamattomille tiedoille
pakkaamaton tiedosto, err := os. Luoda("esimerkki.txt")
jos virhe! = nolla {
paniikki(err)
}
lykätä pakkaamaton tiedosto. Kiinni()

// Kopioi gzip-lukijan sisältö uuteen tiedostoon
_, err = io. Kopioi (pakkaamaton tiedosto, gzipReader)
jos virhe! = nolla {
paniikki(err)
}
}

The Avata toiminto os paketti avaa gzip-tiedoston ja UusiReader toiminto gzip paketti lukee zip-tiedoston. The Luoda toiminto os paketti luo uuden tekstitiedoston. The Kopio toiminto kopioi sisällön gzipReader kohtaan pakkaamaton tiedosto.

Tietojen pakkaaminen ja purkaminen Zlibillä

Zlib on kirjasto tietojen pakkaamiseen ja purkamiseen; kirjasto käyttää myös LZ77-algoritmia. Zlib on kirjoitettu C-kielellä ja sitä käytetään laajasti muiden pakkauskirjastojen ja ohjelmistojen perustana. Toisin kuin gzip, zlib on kirjasto ja zlib ei sisällä a tiedosto muoto. Sitä käytetään kuitenkin usein säilömuotoihin, kuten PNG tai HTTP, tallennettujen tietojen pakkaamiseen.

Pakkaaminen zlibillä on sama kuin gzip: ssä. Luot zlib-tiedoston, määrität kirjoittajan, avaat alkuperäisen tiedoston ja kopioit sisällön pakattuun tiedostoon.

tuonti (
"compress/zlib"
"io"
"os"
)

funcpää() {
// Luo uusi tiedosto "example.zlib"
tiedosto, err := os. Luoda("esimerkki.zlib")
// Jos tapahtuu virhe, panikoi ja pysäytä ohjelma
jos virhe! = nolla {
paniikki(err)
}
// Varmista, että tiedosto suljetaan funktion palauttamisen jälkeen
lykätä tiedosto. Kiinni()

// Luo uusi zlib-kirjoitin, jolla on paras pakkaustaso
kirjoittaja, err := zlib. NewWriterLevel (tiedosto, zlib. Paras pakkaus)
// Jos tapahtuu virhe, panikoi ja pysäytä ohjelma
jos virhe! = nolla {
paniikki(err)
}
// Varmista, että kirjoittaja suljetaan funktion palauttamisen jälkeen
lykätä kirjailija. Kiinni()

// Avaa syöttötiedosto "example.txt"
inputFile, err := os. Avata("esimerkki.txt")
// Jos tapahtuu virhe, panikoi ja pysäytä ohjelma
jos virhe! = nolla {
paniikki(err)
}
// Varmista, että syöttötiedosto suljetaan funktion palautuksen jälkeen
lykätä inputFile. Kiinni()

// Kopioi syöttötiedoston sisältö kirjoittajalle
io. Kopioi (kirjoitin, inputFile)
}

The Luoda menetelmä luo zlib-tiedoston ja NewWriterLevel -toiminto luo tiedostolle kirjoittajan määritetyllä valinnalla (tässä tapauksessa Paras pakkaus vaihtoehto). The Avata menetelmä os paketti avaa tekstitiedoston ja Kopio toiminto io paketti kopioi tekstitiedoston sisällön zlib-tiedostoon pakkausprosessissa.

Jos haluat purkaa zlib-tiedoston, sinun on avattava pakattu tiedosto, luotava uusi zlib-lukija ja lopuksi kopioitava lukijan sisältö vakiolähtöön.

tuonti (
"compress/zlib"
"io"
"os"
)

funcpää() {
// Avaa pakattu tiedosto "compressed_file.zlib"
tiedosto, err := os. Avata("pakattu_tiedosto.zlib")
// Jos tapahtuu virhe, panikoi ja pysäytä ohjelma
jos virhe! = nolla {
paniikki(err)
}
// Varmista, että tiedosto suljetaan funktion palauttamisen jälkeen
lykätä tiedosto. Kiinni()

// Luo uusi zlib-lukija pakatulle tiedostolle
lukija, err := zlib. NewReader (tiedosto)
// Jos tapahtuu virhe, panikoi ja pysäytä ohjelma
jos virhe! = nolla {
paniikki(err)
}
// Varmista, että lukija on suljettu funktion palattua
lykätä lukija. Kiinni()

// Kopioi lukijan sisältö vakiotulosteeseen
io. Kopioi (os. Stdout, lukija)
}

Päätoiminto avaa zlib-tiedoston os paketteja Avata toiminto ja UusiReader toiminto zlib paketti lukee zlib-tiedoston lukijainstanssiin. The Kopio menetelmä io paketti kopioi sisällön lukijasta vakiolähtöön (tässä tapauksessa konsoliin).

Tiedostojen pakkauskoodin kirjoittaminen on kätevää tehtävien automatisoinnissa ja useiden tiedostojen pakkaamisessa. Jos sinun on pakattava vain muutama tiedosto, voit turvautua käyttämään sovelluksia, kuten WinRar, WinZip, Express Zip ja Bandizip.