Java Avro中DatumWriter的目的是什么

Java Avro中DatumWriter的目的是什么,java,avro,Java,Avro,Avro网站有一个例子: DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class); DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter); dataFileWriter.create(user1.getSchema(), new File("us

Avro
网站有一个例子:

DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class);
DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter);
dataFileWriter.create(user1.getSchema(), new File("users.avro"));
dataFileWriter.append(user1);
dataFileWriter.append(user2);
dataFileWriter.append(user3);
dataFileWriter.close();
DatumWriter用户DatumWriter=新的SpecificDatumWriter(User.class);
DataFileWriter DataFileWriter=新的DataFileWriter(userDatumWriter);
创建(user1.getSchema(),新文件(“users.avro”);
dataFileWriter.append(user1);
dataFileWriter.append(user2);
dataFileWriter.append(user3);
dataFileWriter.close();

DatumWriter
的用途是什么?我是说它提供了什么?它提供了
write
方法,但我们没有使用它,而是使用
DataFileWriter
。有人能解释一下它的设计目的吗?

DatumWriter类负责将给定的数据对象转换成具有给定模式的avro记录(在您的案例中,它是从用户类中提取的)

给定此记录,DataFileWriter负责将其写入文件

在我看来是这样的。