English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java proporciona dos clases, DeflaterOutputStream e InflaterInputStream, para comprimir y descomprimir datos.
Comprimir un archivo individual-
Creando pasando la ruta del archivo a comprimir en formato String como parámetro de su constructor.FileInputStreamel objeto.
Creando pasando la ruta del archivo de salida como parámetro de su constructor en formato String.FileOutputStreamel objeto.
Creando pasando el objeto FileOutputStream creado anteriormente como parámetro de su constructor.DeflaterOutputStreamel objeto.
Luego, leer el contenido del archivo de entrada y usarwrite()
Métodos de la clase DeflaterOutputStream para escritura.
import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.DeflaterOutputStream; public class CompressingFiles { public static void main(String args[]) throws IOException { //instanciar FileInputStream- String inputPath = "D:\\ExampleDirectory\\logo.jpg"; FileInputStream inputStream = new FileInputStream(inputPath); //Instanciar FileOutputStream- String outputPath = "D:\\ExampleDirectory\\compressedLogo.txt"; FileOutputStream outputStream = new FileOutputStream(outputPath); //Instanciar DeflaterOutputStream- DeflaterOutputStream compresser = new DeflaterOutputStream(outputStream); int contents; while ((contents=inputStream.read())!=-1{ compresser.write(contents); } compresser.close(); System.out.println("El archivo está comprimido......-"); } }
Resultado de salida
El archivo está comprimido......-
Descomprimir el archivo comprimido-
Creado pasando la ruta del archivo comprimido en formato String como parámetro de su constructor.FileInputStreamel objeto.
Creado pasando la ruta del archivo de salida (imagen sin comprimir) en formato String como parámetro de su constructor.FileOutputStreamel objeto.
creadel InflaterInputStreammediante la creación de los objetos anteriores,dentro de FileOutputStreamel objeto, como parámetro para su constructor.
luego, leerInflaterInputStreamel contenido del objeto, y usarwrite()
métodos de la clase FileOutputStream para escribir.
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; public class DeCompressingFiles { public static void main(String args[]) throws IOException { StringinputPath ="D:\\ExampleDirectory\\compressed.txt"; //instanciar FileInputStream- FileInputStream inputStream = new FileInputStream(inputPath); String outputpath = "D:\\ExampleDirectory\\output.jpg"; FileOutputStream outputStream = new FileOutputStream(outputpath); InflaterInputStream decompresser = new InflaterInputStream(inputStream); int contents; while ((contents=decompresser.read())!?-1{ outputStream.write(contents); } //cerrar archivo outputStream.close(); -compressed...... } }
Resultado de salida
Archivo sin-compressed......