ચોક્કસ, ચાલો C# માં GZip કમ્પ્રેશનની દુનિયામાં જઈએ.
'GZip' શબ્દ શરૂઆતમાં થોડો ટેકનિકલ અને ભયાવહ લાગે છે, પરંતુ તેનો ખ્યાલ અને અમલીકરણ એકદમ સરળ છે. તેના મૂળમાં, GZip એક ફાઇલ ફોર્મેટ છે જેનો ઉપયોગ સામાન્ય રીતે ફાઇલ કમ્પ્રેશન અને ડિકમ્પ્રેશન માટે થાય છે. ઇન્ટરનેટ પર વેબ ડેવલપમેન્ટ અને ડેટા ટ્રાન્સમિશનની દુનિયામાં, GZip મોકલવામાં આવતા ડેટાના કદને ઑપ્ટિમાઇઝ કરવામાં નોંધપાત્ર ભૂમિકા ભજવે છે, આમ ડેટા ટ્રાન્સમિશન પ્રક્રિયાને ઝડપી અને વધુ કાર્યક્ષમ બનાવે છે.
C# પ્રોગ્રામિંગ ભાષામાં, આ સિસ્ટમ.IO.કમ્પ્રેશન નેમસ્પેસ GZip કમ્પ્રેશનને અસરકારક રીતે હેન્ડલ કરવા માટે જરૂરી પદ્ધતિઓ અને વર્ગો પ્રદાન કરે છે. હવે, ચાલો માં ડાઇવ કરીએ કેવી રીતે તેમાંથી - બાઈટ એરેને સંકુચિત અને ડિકમ્પ્રેસ કરવા માટે GZip નો ઉપયોગ.
સમસ્યાનો ઉકેલ
બાઈટ એરેને ઝિપ કરવા માટે, અમે અનુક્રમે System.IO અને System.IO.Compression નેમસ્પેસમાં પ્રદાન કરેલ GZipStream વર્ગ અને MemoryStream વર્ગનો ઉપયોગ કરીશું.
[વિભાગ=કોડ લેંગ="C#"]
સાર્વજનિક સ્ટેટિક બાઇટ[] GZipCompress(બાઇટ[] ડેટા)
{
ઉપયોગ કરીને(MemoryStream ms = નવી MemoryStream())
ઉપયોગ કરીને(GZipStream gzip = નવી GZipStream(ms, CompressionMode.Compress, true))
{
gzip.Write(ડેટા, 0, ડેટા.લંબાઈ);
}
પરત ms.ToArray();
}
અને GZip સાથે સંકુચિત બાઇટ એરેને ડિકમ્પ્રેસ કરવા માટે, અમે GZipStream અને MemoryStream બંને વર્ગોનો ફરીથી ઉપયોગ કરીશું પરંતુ આ વખતે, ટ્વિસ્ટ સાથે.
સાર્વજનિક સ્ટેટિક બાઇટ[] GZipDecompress(બાઇટ[] ડેટા)
{
ઉપયોગ કરીને(મેમરીસ્ટ્રીમ આઉટપુટ = નવી મેમરીસ્ટ્રીમ())
ઉપયોગ કરીને(મેમરીસ્ટ્રીમ ઇનપુટ = નવી મેમરીસ્ટ્રીમ(ડેટા))
ઉપયોગ કરીને(GZipStream gzip = નવી GZipStream(ઇનપુટ, CompressionMode.Decompress))
{
gzip.CopyTo(આઉટપુટ);
}
આઉટપુટ પરત કરો. ToArray();
}
ઉપરના બે કોડ સ્નિપેટ્સ C# માં GZip નો ઉપયોગ કરીને બાઈટ એરેને સંકુચિત અને ડિકમ્પ્રેસ કરવા માટેનો ઉકેલ દર્શાવે છે.
કોડનું પગલું દ્વારા પગલું સમજૂતી
કમ્પ્રેશન પદ્ધતિમાં, પગલાં સીધા છે:
- એક નવો MemoryStream દાખલો બનાવવામાં આવ્યો છે.
- એક નવો GZipStream દાખલો બનાવવામાં આવ્યો છે જે ઉપરોક્ત MemoryStream ને તેના બેઝ સ્ટ્રીમ તરીકે ઉપયોગ કરે છે. કમ્પ્રેશનમોડ 'કોમ્પ્રેસ' પર સેટ કરેલ છે.
- બાઇટ ડેટા GZipStream પર લખવામાં આવે છે જે તેને સંકુચિત કરે છે.
- છેલ્લે, સંકુચિત ડેટા તેની ToArray() પદ્ધતિનો ઉપયોગ કરીને MemoryStream માંથી કાઢવામાં આવે છે.
ડીકોમ્પ્રેસન પદ્ધતિમાં:
- આઉટપુટ MemoryStream ઉદાહરણ અને સંકુચિત ડેટા ધરાવતો MemoryStream દાખલો બનાવવામાં આવે છે.
- ઇનપુટ MemoryStream નો ઉપયોગ કરીને GZipStream દાખલો બનાવવામાં આવે છે અને CompressionMode 'Decompress' પર સેટ છે.
- છેલ્લે, ડિકમ્પ્રેસ્ડ ડેટા આઉટપુટ MemoryStream પર કૉપિ કરવામાં આવે છે અને તે બાઈટ એરે તરીકે પરત કરવામાં આવે છે.
GZipStream વર્ગ
C# માં System.IO.Compression નેમસ્પેસમાં રાખવામાં આવેલ GZipStream વર્ગ, ડેટાને સંકુચિત અને ડિકમ્પ્રેસ કરવા માટે એક શક્તિશાળી સાધન છે. તે તમને જરૂરી કમ્પ્રેશનના સ્તરને નક્કી કરવા માટે ઇન-બિલ્ટ વિકલ્પો પ્રદાન કરે છે, જેમાં કોઈ કમ્પ્રેશનથી લઈને શ્રેષ્ઠ કમ્પ્રેશન સુધીનો સમાવેશ થાય છે.
મેમરીસ્ટ્રીમ વર્ગ
MemoryStream વર્ગ, System.IO નેમસ્પેસ હેઠળ, મેમરીમાં સ્ટ્રીમનું પ્રતિનિધિત્વ કરે છે. તેનો ઉપયોગ સામાન્ય રીતે બેકિંગ સ્ટોરની જરૂરિયાત વિના બાઈટ એરેમાંથી વાંચવા અથવા લખવા માટે થાય છે.
આ ફક્ત આ વિષયોની સંક્ષિપ્ત ઝાંખીઓ છે. આ પુસ્તકાલયોની સંભવિતતાને સંપૂર્ણ રીતે સમજવા માટે, અધિકારીમાં ઊંડા ઊતરો C# દસ્તાવેજીકરણ અને વિવિધ દૃશ્યો અને ઉપયોગ-કેસો સાથે પ્રયોગ. યાદ રાખો, હેન્ડ-ઓન અનુભવ અને પ્રયોગ એ પ્રોગ્રામિંગ વિભાવનાઓ શીખવા અને માસ્ટર કરવાની શ્રેષ્ઠ રીતો છે.