Los algoritmos Gzip y Zlib se usan popularmente para comprimir y descomprimir archivos. Gzip se usa principalmente para comprimir archivos individuales, mientras que Zlib comprime principalmente flujos de datos. Los algoritmos usan el Algoritmo de compresión desinflado para la compresión, aunque Gzip ofrece funciones adicionales, como la comprobación de errores y metadatos de archivos.
Homepage
/
Headline
/
Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más. Los algoritmos Gzip y Zlib se usan popularmente para comprimir y descomprimir archivos. Gzip se usa principalmente para comprimir archivos individuales, mientras que Zlib comprime principalmente flujos de datos. Los algoritmos usan el Algoritmo de compresión desinflado para la compresión, aunque Gzip ofrece funciones adicionales, como la comprobación de errores y metadatos de archivos. Gzip ha proporcionado mejores relaciones de compresión que Zlib. Sin embargo, Gzip requiere más poder de procesamiento para comprimir y descomprimir datos. En la mayoría de los casos, debe usar Gzip para comprimir archivos y Zlib para comprimir flujos de datos. googletag.cmd.push(function() { googletag.display('div-gpt-ad-1494450502098-primis'); }); Go proporciona la funcionalidad para comprimir datos, incluidos archivos a través del paquete de compresión. El paquete Compress El paquete compress admite la compresión de datos a través de los paquetes compress/gzip y compress/zlib, entre otras funcionalidades. El paquete gzip admite la compresión y descompresión de datos en formato de archivo gzip, incluidas las operaciones de lectura y escritura como se especifica en RFC 1952. Mientras que el paquete zlib ayuda a comprimir y descomprimir datos en formato zlib. Puede importar gzip y zlib desde el paquete de compresión usando la palabra clave de importación. import ("compress/gzip" // import gzip "compress/zlib" // import zlib) Compresión y descompresión de archivos con Gzip Gzip es un formato de archivo y una aplicación de software para la compresión y descompresión de archivos. Gzip usa el algoritmo de cadena Lempel-Ziv-Markov (LZ77) para comprimir datos, y el algoritmo se usa a menudo para comprimir archivos de texto, como archivos HTML, CSS o JavaScript. El proceso de comprimir archivos con el paquete gzip es simple y intuitivo. Deberá abrir el archivo, crear un archivo comprimido con gzip, crear un escritor gzip y copiar el contenido del archivo original en el escritor gzip antes de la operación de descarga que garantiza que el proceso de escritura esté completo. Ejecute este comando bash en la terminal de su directorio de trabajo en sistemas Unix para crear un archivo de texto de muestra y luego insertar texto en el archivo. // crea un archivo de texto.touch ejemplo.txt// canaliza la cadena al archivoecho '¡Hola, mundo!' > ejemplo.txt} Después de crear el archivo e insertar el texto, puede importar los paquetes gzip, io y os para la operación de compresión. Así es como puede usar el paquete compress/gzip para comprimir un archivo de texto. import ("compress/gzip" "io" "os")func main() { // Abre el archivo original originalFile, err := os.Open("example.txt") if err != nil { panic(err) } defer originalFile.Close() // Crea un nuevo archivo gzippedFile gzippedFile, err := os.Create("example.txt.gz") if err != nil { panic(err) } defer gzippedFile.Close() // Cree un nuevo escritor gzip gzipWriter := gzip.NewWriter(gzippedFile) defer gzipWriter.Close() // Copie el contenido del archivo original al escritor gzip _, err = io.Copy(gzipWriter, originalFile) if err != nil { panic(err) } // Vacíe el escritor gzip para asegurarse de que se escriben todos los datos gzipWriter.Flush()} La función Abrir del paquete os abre el archivo de texto y la función Cerrar cierra el archivo con una declaración diferida. La función Create crea un archivo comprimido con gzip y la función NewWriter del paquete gzip escribe el contenido del archivo de texto en el archivo gzip usando la función Copy del paquete io. El método Flush de la instancia gzipWriter vacía el escritor gzip una vez que los datos están disponibles en el archivo comprimido. Puede recuperar el archivo original de un archivo comprimido mediante un proceso de descompresión. El proceso de descompresión de un archivo es similar; abrirá el archivo y creará un lector de archivos gzip, luego creará un nuevo archivo para almacenar los datos sin comprimir antes de copiar el contenido en el nuevo archivo. import ("compress/gzip" "io" "os")func main() { // Abre el archivo comprimido gzippedFile, err := os.Open("example.txt.gz") if err != nil { panic( err) } defer gzippedFile.Close() // Crea un nuevo lector gzip gzipReader, err := gzip.NewReader(gzippedFile) defer gzipReader.Close() // Crea un nuevo archivo para contener los datos sin comprimir uncompressedFile, err := os .Create("example.txt") if err != nil { panic(err) } defer uncompressedFile.Close() // Copia el contenido del lector gzip al nuevo archivo _, err = io.Copy(uncompressedFile, gzipReader ) if err != nil { panic(err) }} La función Open del paquete os abre el archivo comprimido con gzip y la función NewReader del paquete gzip lee el archivo comprimido. La función Create del paquete os crea un nuevo archivo de texto. La función Copiar copia el contenido de gzipReader en el archivo sin comprimir. Comprimir y descomprimir datos con Zlib Zlib es una biblioteca para la compresión y descompresión de datos; la biblioteca también utiliza el algoritmo LZ77. Zlib está escrito en C y se usa ampliamente como base para otras bibliotecas y software de compresión. A diferencia de gzip, zlib es una biblioteca y zlib no incluye un formato de archivo. Sin embargo, a menudo se usa para comprimir datos almacenados en formatos contenedores, como PNG o HTTP. El proceso de compresión con zlib es el mismo que para gzip. Creará un archivo zlib, configurará un editor, abrirá el archivo original y copiará el contenido en el archivo comprimido. import ("compress/zlib" "io" "os")func main() { // Crear un nuevo archivo "example.zlib", err := os.Create("example.zlib") // Si ocurre un error , panic and stop the program if err != nil { panic(err) } // Asegúrese de que el archivo esté cerrado después de que la función devuelva defer file.Close() // Cree un nuevo escritor zlib con el mejor nivel de compresión, err := zlib.NewWriterLevel(file, zlib.BestCompression) // Si ocurre un error, entre en pánico y detenga el programa si err != nil { panic(err) } // Asegúrese de que el editor esté cerrado después de que la función devuelva deferwriter.Close () // Abra el archivo de entrada "example.txt" inputFile, err := os.Open("example.txt") // Si ocurre un error, entre en pánico y detenga el programa if err != nil { panic(err) } // Asegúrese de que el archivo de entrada esté cerrado después de que la función devuelva defer inputFile.Close() // Copie el contenido del archivo de entrada al escritor io.Copy(writer, inputFile)} El método Create crea el archivo zlib, y la función NewWriterLevel crea un escritor para el archivo con la opción especificada (en este caso, la opción BestCompression). El método Abrir del paquete os abre el archivo de texto y la función Copiar del paquete io copia el contenido del archivo de texto en el archivo zlib en el proceso de compresión. Para descomprimir el archivo zlib, deberá abrir el archivo comprimido. archivo, cree un nuevo lector zlib y, finalmente, copie el contenido del lector a la salida estándar. import ("compress/zlib" "io" "os")func main() { // Abra el archivo comprimido "compressed_file.zlib", err := os.Open("compressed_file.zlib") // Si ocurre un error , panic and stop the program if err != nil { panic(err) } // Asegúrese de que el archivo esté cerrado después de que la función devuelva defer file.Close() // Cree un nuevo lector zlib para el lector de archivos comprimidos, err : = zlib.NewReader(archivo) // Si ocurre un error, entre en pánico y detenga el programa si err != nil { panic(err) } // Asegúrese de que el lector esté cerrado después de que la función devuelva defer reader.Close() // Copiar el contenido del lector a la salida estándar io.Copy(os.Stdout, lector)} La función principal abre el archivo zlib con la función Abrir del paquete os, y la función NewReader del paquete zlib lee el archivo zlib en una instancia de lector . El método Copy del paquete io
copia el contenido del lector a la salida estándar (en este caso, la consola). Utilice estas herramientas para la compresión de archivos Escribir código para la compresión de archivos es útil para automatizar tareas y comprimir varios archivos. Si solo necesitas comprimir algunos archivos, puedes recurrir al uso de aplicaciones como WinRar, WinZip, Express Zip y Bandizip.
Read Now