avro

来源:互联网 发布:单片机控制直流电机 编辑:程序博客网 时间:2024/05/17 10:05
    /**     * T一般是GenericRecord     *     * @param schema     * @param file     * @param records     * @param <T>     */    private static <T> void serialize(Schema schema, File file, List<T> records) {        GenericDatumWriter<T> genericDatumWriter = new GenericDatumWriter<>(schema);        DataFileWriter<T> dataFileWriter = new DataFileWriter<>(genericDatumWriter);        try {            dataFileWriter.create(schema, file);            for (T record : records) {                dataFileWriter.append(record);            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                dataFileWriter.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * T一般是GenericRecord     *     * @param schema     * @param file     * @param <T>     */    private static <T> void deserialize(Schema schema, File file) {        GenericDatumReader<T> genericDatumReader = new GenericDatumReader<>();        DataFileReader<T> dataFileReader = null;        try {            dataFileReader = new DataFileReader<>(file, genericDatumReader);            T record = null;            while (dataFileReader.hasNext()) {                record = dataFileReader.next(record);                System.out.println(record);            }        } catch (IOException e) {            e.printStackTrace();        } finally {            if (dataFileReader != null) {                try {                    dataFileReader.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }

0 0
原创粉丝点击