package com.discursive.cjcook.guava.io;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.lang.math.RandomUtils;
import com.discursive.cjcook.proto.Checkin.PositionData;
public class ByteArrayInputExampleAlt {
public static void main(String[] args) {
int size = 10000;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
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();
try {
dos.write(pData.toByteArray());
} catch (IOException e) {
// Please this is a PITA
// Use the ByteArrayDataOutput
}
}
byte[] encodedData = baos.toByteArray();
System.out.printf("%d PositionData objects encoded into %d bytes",
size, encodedData.length);
}
}