网站开发用哪种语言做好,新营销模式有哪些,做旅游网站的论文,wordpress 柚子皮下载文章目录 是什么为什么如何做流操作 注事事项 是什么
把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途#xff1a; 1#xff09;把对象的字节序列永久地保存到硬盘上#xff0c;通常存放在一… 文章目录 是什么为什么如何做流操作 注事事项 是什么
把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途 1把对象的字节序列永久地保存到硬盘上通常存放在一个文件中 2在网络上传送对象的字节序列。
为什么
一般来说如果你的对象需要网络传输或者持久化 (对象直接转换为字节的形式传输)那么就需要实现Serializable接口。比如远程方法调RPC (Remote Procedure Call) 则接口参数就一定要实现Serializable接口如果只是转换为json字符串的形式与网络打交道那么就不需要实现Serializable接口。 持久化数据库rpc调用外部接口网络通信时候。 这几种情况需要实现serialliable接口转换JSON不需要实现接口
如何做
流操作 /*** 序列化操作*/public static void serialize() {String targetFile PATH_PREFIX.concat(user.txt);try (ObjectOutputStream objectOutputStream new ObjectOutputStream(new FileOutputStream(new File(targetFile)))) {UserDomain userDomain UserDomain.builder().userName(小明).address(123163.com).build();objectOutputStream.writeObject(userDomain);} catch (IOException e) {log.error(e : 【{}】, e);throw new RuntimeException(e);}log.info(【序列化结束生成文件user.txt】);}/*** 反序列化** return*/public static UserDomain deserialize() {String targetFile PATH_PREFIX.concat(user.txt);UserDomain user null;try (ObjectInputStream inputStream new ObjectInputStream(new FileInputStream(new File(targetFile)))) {user (UserDomain) inputStream.readObject();} catch (IOException | ClassNotFoundException e) {log.error(e : 【{}】, e);throw new RuntimeException(e);}log.info(【反序列化结束】);return user;}/*** 序列化操作*/Testpublic void testSerialization(){FileUtil.serialize();UserDomain user FileUtil.deserialize();log.info(user : [{}] , user);}16:10:08.019 [main] INFO com.geekmice.springbootselfexercise.NoDaoTest - user : [UserDomain(idnull, userName小明, birthdaynull, sexnull, address123163.com)] 注事事项