Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Гзип и Злиб алгоритми се популарно користе за компримовање и декомпресију датотека. Гзип се првенствено користи за компримовање појединачних датотека, док Злиб углавном компримује токове података. Алгоритми користе алгоритам компресије дефлације за компресију, иако Гзип пружа додатне функције укључујући проверу грешака и метаподатке датотеке.

Гзип је обезбедио боље размере компресије од Злиба. Међутим, Гзип захтева више процесорске снаге за компримовање и декомпресију података. У већини случајева требало би да користите Гзип за компримовање датотека и Злиб за компримовање токова података.

Го пружа функционалност за компримовање података, укључујући датотеке преко стиснути пакет.

Цомпресс пакет

Тхе стиснути пакет подржава компримовање података преко компримовати/гзип и цомпресс/злиб пакете, између осталих функционалности.

Тхе гзип пакет подржава компримовање и декомпресију података у формату гзип датотеке, укључујући операције читања и писања као што је наведено у

instagram viewer
РФЦ 1952. Док злиб пакет помаже у компримовању и декомпресији података у злиб формату.

Можете да увезете гзип и злиб од стиснути пакет користећи увоз кључна реч.

увоз (
"компримирај/гзип"// импорт гзип

"цомпресс/злиб"// импорт злиб
)

Компресовање и декомпресовање датотека помоћу Гзип-а

Гзип је формат датотеке и софтверска апликација за компресију и декомпресију датотека. Гзип користи Лемпел-Зив-Марков ланчани алгоритам (ЛЗ77) за компримовање података, а алгоритам се често користи за компримовање текстуалних датотека, као што су ХТМЛ, ЦСС или ЈаваСцрипт датотеке.

Процес компресије датотека са гзип пакет је једноставан и интуитиван. Мораћете да отворите датотеку, креирате гзип датотеку, креирате гзип писац и копирате оригинал садржај датотеке гзип писачу пре операције испирања која обезбеђује да је процес писања комплетан.

Покрени ово басх цомманд у терминалу вашег радног директоријума на Уник системима да бисте креирали узорак текстуалне датотеке и затим убацили текст у датотеку.

// креира текстуалну датотеку.
додирни пример.ткт

// води стринг у фајл
ецхо 'Здраво, свет!' > екампле.ткт}

Након креирања датотеке и уметања текста, можете да увезете гзип, ио, и ос пакети за операцију компресије.

Ево како можете да користите компримовати/гзип пакет за компримовање текстуалне датотеке.

увоз (
"компримирај/гзип"
"ио"
"ос"
)

фунцглавни() {
// Отворите оригиналну датотеку
оригиналФиле, ерр := ос. Отвори("екампле.ткт")
ако ерр != нула {
паника(ерр)
}
одложити оригиналФиле. Близу()

// Креирајте нову гзип датотеку
гзиппедФиле, ерр := ос. Креирај("екампле.ткт.гз")
ако ерр != нула {
паника(ерр)
}
одложити гзиппедФиле. Близу()

// Креирајте нови гзип писац
гзипВритер := гзип. НевВритер (гзиппедФиле)
одложити гзипВритер. Близу()

// Копирај садржај оригиналне датотеке у гзип програм за писање
_, грешка = ио. Копирај (гзипВритер, оригиналФиле)
ако ерр != нула {
паника(ерр)
}

// Испразните гзип програм за писање да бисте били сигурни да су сви подаци уписани
гзипВритер. Флусх()
}

Тхе Отвори функција на ос пакет отвара текстуалну датотеку, а Близу функција затвара датотеку са а одложити изјава. Тхе Креирај функција креира гзипирану датотеку, а НевВритер функција на гзип пакет уписује садржај текстуалне датотеке у гзип датотеку користећи Копирај функција на ио пакет.

Тхе Флусх методом гзипВритер инстанца испразни гзип писац када сви подаци буду доступни у зипованој датотеци.

Можете да преузмете оригиналну датотеку из гзипане датотеке кроз процес декомпресије. Процес декомпресије датотеке је сличан; отворићете датотеку и креирати читач гзип датотека, а затим креирати нову датотеку која ће задржати некомпримоване податке пре него што копирате садржај у нову датотеку.

увоз (
"компримирај/гзип"
"ио"
"ос"
)

фунцглавни() {
// Отворите гзип датотеку
гзиппедФиле, ерр := ос. Отвори("екампле.ткт.гз")
ако ерр != нула {
паника(ерр)
}
одложити гзиппедФиле. Близу()

// Креирајте нови гзип читач
гзипРеадер, ерр := гзип. Нови читач (гзиппедФиле)
одложити гзипРеадер. Близу()

// Креирајте нову датотеку за чување некомпримованих података
унцомпресседФиле, ерр := ос. Креирај("екампле.ткт")
ако ерр != нула {
паника(ерр)
}
одложити унцомпресседФиле. Близу()

// Копирај садржај гзип читача у нову датотеку
_, грешка = ио. Копирај (некомпримовани фајл, гзипРеадер)
ако ерр != нула {
паника(ерр)
}
}

Тхе Отвори функција на ос пакет отвара гзипану датотеку, а НевРеадер функција на гзип пакет чита зип датотеку. Тхе Креирај функција на ос пакет креира нову текстуалну датотеку. Тхе Копирај функција копира садржај гзипРеадер до унцомпресседФиле.

Компресовање и декомпресовање података помоћу Злиб-а

Злиб је библиотека за компресију и декомпресију података; библиотека такође користи ЛЗ77 алгоритам. Злиб је написан у Ц-у и широко се користи као основа за друге библиотеке за компресију и софтвер. за разлику од гзип, злиб је библиотека, и злиб не укључује а Формат датотеке. Међутим, често се користи за компримовање података ускладиштених у форматима контејнера, као што су ПНГ или ХТТП.

Процес компресије са злиб-ом је исти као и за гзип. Направићете злиб датотеку, конфигурисати програм за писање, отворити оригиналну датотеку и копирати садржај у компримовану датотеку.

увоз (
"цомпресс/злиб"
"ио"
"ос"
)

фунцглавни() {
// Креирајте нову датотеку "екампле.злиб"
фајл, грешка := ос. Креирај("екампле.злиб")
// Ако дође до грешке, паничите и зауставите програм
ако ерр != нула {
паника(ерр)
}
// Уверите се да је датотека затворена након што се функција врати
одложити фајл. Близу()

// Креирајте нови злиб писац са најбољим нивоом компресије
писац, ерр := злиб. НевВритерЛевел (датотека, злиб. најбоља компресија)
// Ако дође до грешке, паничите и зауставите програм
ако ерр != нула {
паника(ерр)
}
// Уверите се да је програм за писање затворен након што се функција врати
одложити писац. Близу()

// Отворите улазну датотеку "екампле.ткт"
инпутФиле, ерр := ос. Отвори("екампле.ткт")
// Ако дође до грешке, паничите и зауставите програм
ако ерр != нула {
паника(ерр)
}
// Уверите се да је улазна датотека затворена након што се функција врати
одложити улазни документ. Близу()

// Копирај садржај улазне датотеке у програм за писање
ио. Копирај (писач, улазна датотека)
}

Тхе Креирај метод креира злиб датотеку, а НевВритерЛевел функција креира програм за писање за датотеку са наведеном опцијом (у овом случају, тхе БестЦомпрессион опција). Тхе Отвори методом ос пакет отвара текстуалну датотеку, а Копирај функција на ио пакет копира садржај текстуалне датотеке у злиб датотеку у процесу компресије.

Да бисте декомпримовали злиб датотеку, мораћете да отворите компримовану датотеку, креирате нови злиб читач, а затим коначно копирате садржај читача у стандардни излаз.

увоз (
"цомпресс/злиб"
"ио"
"ос"
)

фунцглавни() {
// Отворите компримовани фајл "цомпрессед_филе.злиб"
фајл, грешка := ос. Отвори("цомпрессед_филе.злиб")
// Ако дође до грешке, паничите и зауставите програм
ако ерр != нула {
паника(ерр)
}
// Уверите се да је датотека затворена након што се функција врати
одложити фајл. Близу()

// Креирајте нови злиб читач за компримовану датотеку
читач, грешка := злиб. НевРеадер (фајл)
// Ако дође до грешке, паничите и зауставите програм
ако ерр != нула {
паника(ерр)
}
// Уверите се да је читач затворен након што се функција врати
одложити читалац. Близу()

// Копирај садржај читача у стандардни излаз
ио. Копија (ос. Стдоут, читач)
}

Главна функција отвара злиб датотеку са ос пакета Отвори функција, и НевРеадер функција на злиб пакет чита злиб датотеку у инстанцу читача. Тхе Копирај методом ио пакет копира садржај из читача у стандардни излаз (у овом случају, конзолу).

Писање кода за компресију датотека је згодно за аутоматизацију задатака и компримовање неколико датотека. Ако треба да компримујете само неколико датотека, можете да прибегнете коришћењу апликација као што су ВинРар, ВинЗип, Екпресс Зип и Бандизип.