1:通过protoc.exe把.proto文件生成对应的.java文件;
2:拿到一个测试的.data文件;
3ceshi.data为需要解析的测试文件
File file=new File("D:/iflytek/xf/jiangsu/export/ceshi.data");
FileInputStream fis = null;
byte[] buffer = null;
try {
fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
try {
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
} catch (IOException e) {
e.printStackTrace();
}
buffer = bos.toByteArray();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
com.iflytek.util.CallInfoDemo.BillInterface.Builder testBuf3 = CallInfoDemo.BillInterface.newBuilder();
//得到对应的类
com.iflytek.util.CallInfoDemo.BillInterface.Builder a=testBuf3.mergeFrom(buffer);
/*CSignalEvent b=a.getMTStructDataList().get(0);
System.out.println("ff:"+b.getMTGJJSignalEvent().getMEDataType().getNumber());*/
/* System.out.println("11:"+a.getMTStructDataList().get(0));
JSONObject json = JSONObject.fromObject(a.getMTStructDataList().get(0));
String ac=json.getString("OriCallingNumber");*/
//输出解析后的MTGJJCallEvent对象
System.out.println("1:"+a.getMTStructDataList().get(0).getMTGJJSignalEvent().getMTGJJCallEvent());
//String ab=a.getMTStructDataList().get(0).toString();
GJJCallEvent aa=a.getMTStructDataList().get(0).getMTGJJSignalEvent().getMTGJJCallEvent();