package phantomlancer.test.serialize; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Path; import java.nio.file.Paths; import org.apache.avro.file.DataFileWriter; import org.apache.avro.specific.SpecificDatumWriter; import phantomlancer.AvscSchemaBuilder; import com.google.common.io.Files; import com.google.common.io.LineProcessor; public class AppTest { public static void main(String[] args) throws IOException { AvscSchemaBuilder asb = new AvscSchemaBuilder(Metric.class); final DataFileWriter<Metric2> dataFileWriter = new DataFileWriter<Metric2>(new SpecificDatumWriter<Metric2>(asb.createSchema())); dataFileWriter.create(asb.createSchema(), new File("v1.avro")); Path p = Paths.get("v1.log"); Files.readLines(p.toFile(), Charset.defaultCharset(), new LineProcessor<String>() { @Override public boolean processLine(String line) throws IOException { String[] vals = line.split(" "); Metric2 mc = Metric2.builder().dataVersion(Integer.valueOf(vals[0])).salt(Integer.valueOf(vals[1])).applicationId(Long.valueOf(vals[2])) .timeScope(Integer.valueOf(vals[3])).metricTypeId(Long.valueOf(vals[4])).metricId(Long.valueOf(vals[5])).time(Integer.valueOf(vals[6])) .agentRunId(Long.valueOf(vals[7])).uuid(vals[8]).num1(Double.valueOf(vals[9])).num2(Double.valueOf(vals[10])).num3(Double.valueOf(vals[11])) .num4(Double.valueOf(vals[12])).num5(Double.valueOf(vals[13])).num6(Double.valueOf(vals[14])).timestamp(Long.valueOf(vals[15])).build(); dataFileWriter.append(mc); return true; } @Override public String getResult() { return null; } }); dataFileWriter.flush(); dataFileWriter.close(); } }