本文着重研究avro反序列化的Generic方式,先从下面这段读取avro文件(反序列化)的代码开始讲起。
File file = new File("e://twitter.avro");
DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>();
DataFileReader<GenericRecord> dataFileReader = new DataFileReader<GenericRecord>(file, datumReader);
GenericRecord datum = null;
while(dataFileReader.hasNext()) {
datum = dataFileReader.next(datum);
System.out.println(datum);
}
1. 文件读取
类图继承
DataFileReader是继承DataFileStream实现FileReader接口,
public class DataFileReader<D>
extends DataFileStream<D> implements FileReader<D>
类图如