120 lines
3.7 KiB
Java
120 lines
3.7 KiB
Java
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataInputStream;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.Scanner;
|
|
import java.util.zip.GZIPOutputStream;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
public class GZIP_Compressor {
|
|
|
|
|
|
// public static byte[] compressGzipFile(File file) {
|
|
//
|
|
//
|
|
// try {
|
|
// FileInputStream fis = new FileInputStream(file);
|
|
//// FileOutputStream fos = new FileOutputStream(gzipFile);
|
|
// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
// GZIPOutputStream gzipOS = new GZIPOutputStream(byteArrayOutputStream);
|
|
//
|
|
// byte[] buffer = new byte[1024];
|
|
// int len;
|
|
//
|
|
// while((len = fis.read(buffer)) != -1){
|
|
//// gzipOS.write(buffer, 0, len);
|
|
// gzipOS.write(buffer);
|
|
// }
|
|
// //close resources
|
|
// gzipOS.close();
|
|
// fis.close();
|
|
//
|
|
// return byteArrayOutputStream.toByteArray();
|
|
//
|
|
// } catch (IOException e) {
|
|
// e.printStackTrace();
|
|
// }
|
|
//
|
|
// return null;
|
|
// }
|
|
|
|
public static byte[] compress(File file) throws IOException {
|
|
if (file == null) {
|
|
return new byte[0];
|
|
}
|
|
|
|
|
|
DataInputStream reader = new DataInputStream(new FileInputStream(file));
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
|
|
// gzipOutputStream.write(text.getBytes(StandardCharsets.UTF_8));
|
|
gzipOutputStream.write(reader.readAllBytes());
|
|
}
|
|
reader.close();
|
|
return byteArrayOutputStream.toByteArray();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static byte[] compress(String text) throws IOException {
|
|
if (text == null || text.isEmpty()) {
|
|
return new byte[0];
|
|
}
|
|
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
|
|
gzipOutputStream.write(text.getBytes(StandardCharsets.UTF_8));
|
|
}
|
|
return byteArrayOutputStream.toByteArray();
|
|
}
|
|
|
|
|
|
// public static void main(String[] args) {
|
|
// String originalText = "This is a sample text to be compressed.";
|
|
// try {
|
|
// byte[] compressedData = compress(originalText);
|
|
// System.out.println("Original text: " + originalText);
|
|
// System.out.println("Compressed data size: " + compressedData.length + " bytes");
|
|
// } catch (IOException e) {
|
|
// e.printStackTrace();
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
class GzipCompression {
|
|
|
|
public static byte[] compress(String text) throws IOException {
|
|
if (text == null || text.isEmpty()) {
|
|
return new byte[0];
|
|
}
|
|
|
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
|
|
gzipOutputStream.write(text.getBytes(StandardCharsets.UTF_8));
|
|
}
|
|
return byteArrayOutputStream.toByteArray();
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
String originalText = "This is a sample text to be compressed.";
|
|
try {
|
|
byte[] compressedData = compress(originalText);
|
|
System.out.println("Original text: " + originalText);
|
|
System.out.println("Compressed data size: " + compressedData.length + " bytes");
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
*/ |