最近项目上使用google的protobuf( Protocol Buffers )是一种文本格式,据说效率比较高。
下面介绍一下在java中如何使用protobuf
1.下载所protobuf jar包,protobuf代码生成工具
protoc.exe是生成代码的工具
protobuf-java-2.5.0.jar是java代码依赖的jar包
2.创建UserProtobuff.proto文件 内容如下:
message User{
required string userName = 1[default=""];
required string password = 2[default=""];
}
把protoc.exe放到UserProtobuff.proto的同级目录下
在cmd运行如下命令
protoc.exe --java_out c:\logs\ UserProtobuff.proto
--java_out 是文件输出到那个目录下
生成的java代码UserProtobuff.java拷贝到项目目录
然后使用protobuf生成二进制内容和根据二进制内容生成user对象的代码方法如下:
public class ProtobufTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
UserProtobuff.User.Builder user = UserProtobuff.User.newBuilder();
user.setUserName("test");
user.setPassword("123");
//生成二进制内容
byte[] bytes = user.build().toByteArray();
//根据二进制内容生成user对象
UserProtobuff.User parseUser = UserProtobuff.User.parseFrom(bytes);
System.out.println(parseUser.getUserName());
}
}