要读取Protobuf数据,可以按照以下步骤进行:
例如,假设我们有一个名为person.proto
的.proto文件,其中定义了一个Person
消息,包含name
和age
字段:
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
}
protoc person.proto --java_out=.
这将生成一个名为Person.java
的Java类,该类包含Person
消息的getter和setter方法。
import java.io.FileInputStream;
import java.io.IOException;
import com.example.Person;
public class ReadProtobufData {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("data.bin"); // 从文件中读取Protobuf数据
Person person = Person.parseFrom(fis);
fis.close();
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们使用FileInputStream
从文件中读取Protobuf数据,然后使用Person.parseFrom()
方法将二进制数据解析为Person
对象。最后,我们可以使用Person
对象的getter方法获取字段的值。
请注意,这只是一个简单的示例,实际应用中可能需要更复杂的处理逻辑和错误处理。
下一篇:不使用模式进行Avro序列化