<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-avro</artifactId> <version>2.12.0</version> </dependency> public class DataObject { private String message; public DataObject() { } public DataObject(String message) { this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.avro.AvroMapper; import com.fasterxml.jackson.dataformat.avro.AvroSchema; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; public class AvroCompressionHelper { private static AvroMapper avroMapper = new AvroMapper(); public static byte[] compressData(DataObject dataObject) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); avroMapper.writer().with(new AvroSchema(DataObject.class)).writeValue(outputStream, dataObject); return outputStream.toByteArray(); } public static DataObject decompressData(byte[] compressedData) throws IOException { ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData); return avroMapper.reader().forType(DataObject.class).with(new AvroSchema(DataObject.class)).readValue(inputStream); } } public class Main { public static void main(String[] args) { try { byte[] compressedData = AvroCompressionHelper.compressData(dataObject); DataObject decompressedData = AvroCompressionHelper.decompressData(compressedData); } catch (IOException e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文