package com.discursive.cjcook.guava.io; import java.util.Date; import org.apache.commons.lang.math.RandomUtils; import com.discursive.cjcook.proto.Checkin.PositionData; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; public class ByteArrayInputExample { public static void main(String[] args) throws Exception { int size = 10000; ByteArrayDataOutput byteOut = ByteStreams.newDataOutput(); for (int i = 0; i < size; i++) { PositionData pData = PositionData.newBuilder().setVehicleId(1) .setTimestamp((new Date()).getTime()).setAltitude( RandomUtils.nextFloat()).setLatitude(1.0f) .setLongitude(1.0f).setSpeed(RandomUtils.nextInt(100)) .build(); byteOut.write(pData.toByteArray()); } byte[] encodedData = byteOut.toByteArray(); System.out.printf("%d PositionData objects encoded into %d bytes", size, encodedData.length); } }