作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文件“test.txt”,其中包含每行用 testMessage.writeDelimitedTo(the-DataOutputStream-that uses a new FileOutputStream pointing to the file)
编写的多个 protobuf“TestMessage”消息。如何读取 test.txt 的每一行并获取每行的 protobuf?
在包含字符串的文件上使用 bufferedreader,我会这样做:
String strLine; // What is the alternative to String?
while ((strLine = br.readLine()) != null) {
System.out.println (strLine);
TestMessage test = new TestMessage.builder();
test.parseDelimitedFrom(strLine);
}
如果我要执行此方法,我应该将类型设置为什么而不是“String”?这可能吗?
或者我不能这样做并且每个消息都必须写入一个单独的文件吗?
注意:假设 TestMessage 是唯一的消息。
最佳答案
为什么每行写每条消息?我想你可以只使用 writeDelimitedTo,然后消息可以一条一条地写。而且阅读非常简单。
User user = User.newBuilder().setUid(1).build();
User user2 = User.newBuilder().setUid(2).build();
try {
FileOutputStream output = new FileOutputStream(path);
user.writeDelimitedTo(output);
user.writeDelimitedTo(output);
user2.writeDelimitedTo(output);
output.close();
} catch (Exception e) {
System.out.print("Write error!");
}
try {
FileInputStream input = new FileInputStream(path);
while (true) {
User user_ = User.parseDelimitedFrom(input);
if (user_ == null)
break;
System.out.println("read from file: \n" + user_);
}
} catch (Exception e) {
System.out.println("Read error!");
}
关于java - 如何从 java 中的一个文件读取多个 protobufs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939140/
我是一名优秀的程序员,十分优秀!