`
单眼皮大娘
  • 浏览: 112771 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

protobuf简单写入和读入例子

阅读更多
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环境使用google protobuf实现简单的例子”指的是在Windows操作系统下,利用Visual Studio (VS) 2010开发环境,结合Google的Protocol Buffers(protobuf)版本2.5.0进行简单应用的教程。protobuf是...

    protobuf例子

    在描述中提到的"最简单的用socket发送protobuf对象的例子",意味着这个压缩包可能包含了一个使用C++编程语言通过套接字(SOCKET)进行通信的程序,该程序将protobuf序列化后的数据发送给另一端。在客户端和服务端...

    protobuf 在socket中的例子

    protobuf(Protocol Buffers)是Google开发的一种数据序列化协议,常用于高效地存储和传输结构化数据。在Socket编程中,protobuf可以作为消息格式,帮助我们构建可扩展、高效的网络通信系统。以下将详细介绍protobuf...

    protobuf java自动生成,例子实用

    标题中的“protobuf java自动生成”指的是使用Google的Protocol Buffers(简称protobuf)工具在Java环境中进行数据序列化和反序列化的自动化过程。protobuf是一种高效、跨平台的数据交换格式,它能够将结构化数据...

    C#实现简单protobuf学习的例子

    C#实现简单protobuf学习的例子, 可以快速地开发protobuf的功能,这样快速地从一个例子来学习。

    protobuf 使用简单示例

    Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将...它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。

    ros2转protobuf,再转dds发出.

    而Protobuf(Protocol Buffers)是Google开发的一种数据序列化协议,常用于数据存储和跨平台通信,因其高效、紧凑的二进制格式而受到欢迎。 在ROS2中使用protobuf的主要目的是为了优化数据传输效率和减少内存占用。...

    protobuf序列化和反序列化技术

    protobuf序列化和反序列化技术是大数据处理领域中不可或缺的一部分,尤其在实时大数据场景下,高效的数据传输和存储对性能有着直接影响。谷歌推出的Protocol Buffers(简称protobuf)是一种语言无关、平台无关的数据...

    unity3d protobuf-net c#前后端例子代码

    标题“unity3d protobuf-net c#前后端例子代码”表明这是一个使用Unity3D、protobuf-net和C#语言构建的前后端通信示例项目。这个项目可能包含客户端(通常在Unity环境中运行)与服务器端(可能为独立的C#应用)之间...

    在erlang项目中使用protobuf例子

    4. **使用protobuf生成的Erlang模块**:`pokemon_pb.erl`就是一个例子,它包含了`protobuf`编译器自动生成的函数,用于处理`Pokemon`消息类型的序列化和反序列化。这些函数通常以`encode_msg/1,2`和`decode_msg/2`的...

    Protobuf编译C++和C#文件,带例子

    标题中的"Protobuf编译C++和C#文件,带例子"指的是使用Protocol Buffers(简称Protobuf)这一数据序列化工具,为C++和C#编程语言编译定义的数据结构。Protocol Buffers是Google开发的一种高效、灵活且可扩展的数据...

    protobuf3.4源码和win32

    标题中的"protobuf3.4源码和win32"指的是Google开源的Protocol Buffers(简称protobuf)的3.4.0版本源代码及其在Windows 32位平台上的编译工具。protobuf是一种数据序列化协议,它允许开发者定义数据结构,并生成...

    Protobuf 3.5应用例子及proto.exe文件

    同时,序列化和反序列化过程相对简单且高效,使得protobuf成为跨平台通信和数据持久化的理想选择。 在实际应用中,protobuf 3.5还支持枚举类型、oneof字段、映射类型、默认值、以及更灵活的选项设置等特性,使得...

    protobuf 小例子 电话薄 源码

    最后,`TestProtocolBufers`目录下的代码可能包含了一个简单的应用程序,它展示了如何读取和写入电话薄数据。这个程序可能包括创建`PhoneBook`对象,添加`Person`,序列化到磁盘,然后从磁盘读取并反序列化。 总结...

    protobufprotobufprotobufprotobuf

    4. 文件存储与网络通信:protobuf序列化后的数据可以写入文件,作为持久化存储。同时,由于其紧凑的二进制格式,protobuf也常用于网络通信,降低数据传输开销。 在压缩包文件中,"include"目录通常包含protobuf库的...

    protobuf生成lua和go文件

    protobuf,全称Protocol Buffers,是Google开发的一种数据序列化协议,它允许...无论是在Lua还是Go环境中,正确安装和使用protobuf-gen-lua和protobuf编译器都能极大地提升开发效率,同时保证数据的高效传输和序列化。

    netty基于protobuf的简单示例

    在本示例中,我们将深入探讨如何利用 Netty 和 Google 的 Protocol Buffers(protobuf)来构建一个简单的服务端和客户端通信系统。 Protocol Buffers 是 Google 提供的一种数据序列化协议,它可以将结构化数据序列...

    protobuf-c入门例子

    http://blog.csdn.net/gongkongrs/article/details/34420947,在http://blog.csdn.net/menggucaoyuan/article/details/16107201的例子修改了Makefile以适应自己的环境

    Windows下VC++使用protobuf 完整例子

    Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,这个demo将演示如何在Windows下VC++使用protobuf 配套文章地址:http://blog.csdn.net/mycwq/article/details/17606527

Global site tag (gtag.js) - Google Analytics