四、Avro實現序列化的步驟java
一、建立maven工程,引入pom文件(定義屬性和依賴信息,以及定義Avro插件)app
二、根據Avro插件的要求,更改maven工程結構,須要建立一個source/main/avro源目錄maven
三、根據avro的schema(模式)要求,建立模式文件(放在新建的源目錄中),寫好以後ui
四、執行 run-->maven generator sources命令,經過avro插件生成模式文件對應的java類spa
五、將數據封裝到java類中,而後經過avro的API進行序列化和反序列化操做插件
1)設置屬性值的方法:1)經過java日常的API 2)藉助newBuilder()和build()方法:new Student().newBuilder(stu1).setAge(21).build();對象
2)建立schema文件產生的要序列化的對象stu,並賦值ci
3)建立DatumWriter<>對象,DatumWriter dw = new SpecificDatumWriter<>();generator
4)建立DataFileWriter<>對象,DataFileWriter<> dfw = new DataFIleWriter<>(df);it
5)建立序列化通道 dfw.create(schema,file);schema:被序列化對象的對應模式
File:將序列化對象寫入到哪個文件中
6)將對象序列化到指定的文件中
dfw.append(stu);
反序列化:
1)建立DatumReader<>對象,DatumReader dr= new SpecificDatumReader<>();
2)建立DataFileReader<>對象,DataFileReader<> dfr= new DataFIleReader<>(new File(「1.txt」),dr);
3)判斷是否還有須要反序列化的內容
While(dfr.hasNext( ) ){ dfr.next()}