一、添加依赖
<!--引入 Kryo 序列化工具-->
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>4.0.2</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
二、创建测试实体类
import lombok.*;
/**
* @author qinxun
* @date 2023-06-12
* @Descripion: 测试实体
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class School {
private String name;
private String address;
}
三、测试
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.example.quartzdemo.bean.School;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
* @author qinxun
* @date 2023-06-12
* @Descripion: Kryo测试
*/
@SpringBootTest
public class KryoTest {
@Test
void test1() throws IOException {
Kryo kryo = new Kryo();
// 1.注册对象
kryo.register(School.class);
// 2.创建需要处理的对象
School school = new School("北京大学", "北京");
// 3.保存的地址
String path = "D:" + File.separator + "school.txt";
// 4.序列化为二进制流到文件
Output output = new Output(Files.newOutputStream(Paths.get(path)));
kryo.writeObject(output, school);
output.close();
// 5.从文件将二进制流反序列化为 Java 对象
Input input = new Input(Files.newInputStream(Paths.get(path)));
School school1 = kryo.readObject(input, School.class);
// 输出School(name=北京大学, address=北京)
System.out.println(school1);
input.close();
}
}