package protobuf.proto;
option java_outer_classname = "HtmlThemeProtos";
message HtmlTheme {
required int32 id = 1;
optional string title = 2;
optional string data = 3;
}
package protobuf.impl;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import database.DatabaseUtil;
import protobuf.proto.HtmlThemeProtos.HtmlTheme;
import protobuf.proto.HtmlThemeProtos.HtmlTheme.Builder;
public class WriteToFile {
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
String file = "G:/corpus/protobuf/TIME.txt";
String querySQL = "SELECT * FROM TIME";
Connection conn = DatabaseUtil.getConnection();
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(querySQL);
FileOutputStream outputStream = new FileOutputStream(new File(file));
System.out.println("BEGIN");
int count = 0;
while (resultSet.next()) {
int id = resultSet.getInt(1);
String title = resultSet.getString(2);
String data = resultSet.getString(3);
if (title == null || data == null) {
count++;
continue;
}
Builder htmlThemeBuilder = HtmlTheme.newBuilder();
htmlThemeBuilder.setId(id);
htmlThemeBuilder.setTitle(title);
htmlThemeBuilder.setData(data);
HtmlTheme build = htmlThemeBuilder.build();
build.writeDelimitedTo(outputStream);
}
resultSet.close();
statement.close();
conn.close();
outputStream.flush();
outputStream.close();
System.out.println("DONE");
System.out.println("====================================");
System.out.println(count);
System.out.println("====================================");
}
}
package protobuf.impl;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import protobuf.proto.HtmlThemeProtos.HtmlTheme;
public class ReadFromFile {
public static void main(String[] args) throws IOException {
String file = "G:/corpus/protobuf/TIME.txt";
FileInputStream inputStream = new FileInputStream(new File(file));
HtmlTheme htmlTheme;
int count = 0;
while ((htmlTheme = HtmlTheme.parseDelimitedFrom(inputStream)) != null) {
System.out.println(htmlTheme.getId() + "\t\t" + htmlTheme.getTitle());
count++;
}
System.out.println("===============================");
System.out.println(count);
System.out.println("===============================");
}
}
分享到:
相关推荐
标题中的“Windows环境使用google protobuf实现简单的例子”指的是在Windows操作系统下,利用Visual Studio (VS) 2010开发环境,结合Google的Protocol Buffers(protobuf)版本2.5.0进行简单应用的教程。protobuf是...
在描述中提到的"最简单的用socket发送protobuf对象的例子",意味着这个压缩包可能包含了一个使用C++编程语言通过套接字(SOCKET)进行通信的程序,该程序将protobuf序列化后的数据发送给另一端。在客户端和服务端...
protobuf(Protocol Buffers)是Google开发的一种数据序列化协议,常用于高效地存储和传输结构化数据。在Socket编程中,protobuf可以作为消息格式,帮助我们构建可扩展、高效的网络通信系统。以下将详细介绍protobuf...
标题中的“protobuf java自动生成”指的是使用Google的Protocol Buffers(简称protobuf)工具在Java环境中进行数据序列化和反序列化的自动化过程。protobuf是一种高效、跨平台的数据交换格式,它能够将结构化数据...
C#实现简单protobuf学习的例子, 可以快速地开发protobuf的功能,这样快速地从一个例子来学习。
Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将...它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。
而Protobuf(Protocol Buffers)是Google开发的一种数据序列化协议,常用于数据存储和跨平台通信,因其高效、紧凑的二进制格式而受到欢迎。 在ROS2中使用protobuf的主要目的是为了优化数据传输效率和减少内存占用。...
protobuf序列化和反序列化技术是大数据处理领域中不可或缺的一部分,尤其在实时大数据场景下,高效的数据传输和存储对性能有着直接影响。谷歌推出的Protocol Buffers(简称protobuf)是一种语言无关、平台无关的数据...
标题“unity3d protobuf-net c#前后端例子代码”表明这是一个使用Unity3D、protobuf-net和C#语言构建的前后端通信示例项目。这个项目可能包含客户端(通常在Unity环境中运行)与服务器端(可能为独立的C#应用)之间...
4. **使用protobuf生成的Erlang模块**:`pokemon_pb.erl`就是一个例子,它包含了`protobuf`编译器自动生成的函数,用于处理`Pokemon`消息类型的序列化和反序列化。这些函数通常以`encode_msg/1,2`和`decode_msg/2`的...
标题中的"Protobuf编译C++和C#文件,带例子"指的是使用Protocol Buffers(简称Protobuf)这一数据序列化工具,为C++和C#编程语言编译定义的数据结构。Protocol Buffers是Google开发的一种高效、灵活且可扩展的数据...
标题中的"protobuf3.4源码和win32"指的是Google开源的Protocol Buffers(简称protobuf)的3.4.0版本源代码及其在Windows 32位平台上的编译工具。protobuf是一种数据序列化协议,它允许开发者定义数据结构,并生成...
同时,序列化和反序列化过程相对简单且高效,使得protobuf成为跨平台通信和数据持久化的理想选择。 在实际应用中,protobuf 3.5还支持枚举类型、oneof字段、映射类型、默认值、以及更灵活的选项设置等特性,使得...
最后,`TestProtocolBufers`目录下的代码可能包含了一个简单的应用程序,它展示了如何读取和写入电话薄数据。这个程序可能包括创建`PhoneBook`对象,添加`Person`,序列化到磁盘,然后从磁盘读取并反序列化。 总结...
4. 文件存储与网络通信:protobuf序列化后的数据可以写入文件,作为持久化存储。同时,由于其紧凑的二进制格式,protobuf也常用于网络通信,降低数据传输开销。 在压缩包文件中,"include"目录通常包含protobuf库的...
protobuf,全称Protocol Buffers,是Google开发的一种数据序列化协议,它允许...无论是在Lua还是Go环境中,正确安装和使用protobuf-gen-lua和protobuf编译器都能极大地提升开发效率,同时保证数据的高效传输和序列化。
在本示例中,我们将深入探讨如何利用 Netty 和 Google 的 Protocol Buffers(protobuf)来构建一个简单的服务端和客户端通信系统。 Protocol Buffers 是 Google 提供的一种数据序列化协议,它可以将结构化数据序列...
http://blog.csdn.net/gongkongrs/article/details/34420947,在http://blog.csdn.net/menggucaoyuan/article/details/16107201的例子修改了Makefile以适应自己的环境
Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,这个demo将演示如何在Windows下VC++使用protobuf 配套文章地址:http://blog.csdn.net/mycwq/article/details/17606527