几种序列化的实现方法 java自带, Writable, Avro
来源:互联网 发布:java敏感词过滤算法 编辑:程序博客网 时间:2024/04/29 21:43
package org.hdp.practice.serial;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import org.apache.avro.file.DataFileReader;import org.apache.avro.file.DataFileWriter;import org.apache.avro.io.DatumReader;import org.apache.avro.io.DatumWriter;import org.apache.avro.specific.SpecificDatumReader;import org.apache.avro.specific.SpecificDatumWriter;public class Avro {public static void main(String[] args) throws Exception{//readAvro();//writeJavaObject();readWriteableObject();}static void writeWriteableObject() throws Exception{FileOutputStream fos = new FileOutputStream("D:/tmp/users.wobj");DataOutputStream dos = new DataOutputStream(fos);MyUser user1 = new MyUser();user1.setName("Alyssa");user1.setFavoriteNumber(256);user1.setFavoriteColor("yellow");user1.write(dos);MyUser user2 = new MyUser("Ben", 7, "red");user2.write(dos);dos.close();fos.close();}static void readWriteableObject() throws Exception{FileInputStream fis = new FileInputStream("D:/tmp/users.wobj");DataInputStream dis = new DataInputStream(fis);MyUser user1 = new MyUser();user1.readFields(dis);System.out.println(user1);MyUser user2 = new MyUser();user2.readFields(dis);System.out.println(user2);dis.close();}static void writeJavaObject() throws Exception{User user1 = new User();user1.setName("Alyssa");user1.setFavoriteNumber(256);User user2 = new User("Ben", 7, "red");User user3 = User.newBuilder() .setName("Charlie") .setFavoriteColor("blue") .setFavoriteNumber(null) .build();FileOutputStream fos = new FileOutputStream("D:/tmp/users.jobj");ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(user1);oos.writeObject(user2);oos.writeObject(user3);oos.close();fos.close();}static void readJavaObject() throws Exception{FileInputStream fis = new FileInputStream("D:/tmp/users.jobj");ObjectInputStream ois = new ObjectInputStream(fis);User user = (User)ois.readObject();System.out.println(user);User user1 = (User)ois.readObject();System.out.println(user1);User user2 = (User)ois.readObject();System.out.println(user2);ois.close();fis.close();}static void writeAvro() throws Exception{User user1 = new User();user1.setName("Alyssa");user1.setFavoriteNumber(256);User user2 = new User("Ben", 7, "red");User user3 = User.newBuilder() .setName("Charlie") .setFavoriteColor("blue") .setFavoriteNumber(null) .build();DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class);DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter);dataFileWriter.create(user1.getSchema(), new File("D:/tmp/users.avro"));dataFileWriter.append(user1);dataFileWriter.append(user2);dataFileWriter.append(user3);dataFileWriter.close();}static void readAvro() throws Exception{File file = new File("D:/tmp/users.avro");DatumReader<User> userDatumReader = new SpecificDatumReader<User>(User.class);DataFileReader<User> dataFileReader = new DataFileReader<User>(file, userDatumReader);User user = null;while (dataFileReader.hasNext()) {user = dataFileReader.next(user);System.out.println(user);}dataFileReader.close();}}
阅读全文
0 0
- 几种序列化的实现方法 java自带, Writable, Avro
- 几种序列化之间的比较Thrift&protocolbuffer&avro
- 几种序列化之间的比较Thrift&protocolbuffer&avro
- java jackson avro kryo等几种序列化与反序列化工具的使用
- Avro序列化的两种实现方法:静态实现和动态实现
- 序列化与Writable实现
- Java 序列化的高级认识 hadoop序列化 avro
- Java实现数据序列化工具Avro的例子
- Apache Avro 序列化与反序列化 (Java 实现)
- 取消系统自带的标题栏的几种方法
- Spring自带的几种容器实现
- 几种Java序列化方式的实现
- Excel中带字母的数字序列自增实现方法
- Hadoop 的Writable序列化接口
- 从Hadoop Writable序列化框架到java的序列化原理
- Avro数据序列化
- Avro 序列化
- Avro JSON 序列化
- 股票: 限售股
- 阿特兹的旅游记
- 视频ROI多边形区域生成
- SQL2008无法启动,报错"17051"怎么解决
- ict
- 几种序列化的实现方法 java自带, Writable, Avro
- Dell Omreprot
- ssh框架 mvc设计模式
- 数据对接—kettle使用知识3
- 循环语句 for while until
- git 基本操作
- Avro序列化的两种实现方法:静态实现和动态实现
- define宏定义中的#,##,@#及\符号
- Protobuf 简介