0 0

java protobuf本地文件读取问题5

在项目中使用protobuf进行本地存储,结果在读取的时候报出了内存溢出,主要是本地存储的文件比较大,请问如何做分流读取呢?请大家帮忙看看,谢谢啦。

读取代码如下:

FileInputStream input = new FileInputStream(sb_filePath.toString());
//读取本地文件并解析 
FXProtocol addInfo = FXProtocol.parseFrom(input);
for (Person parse : addInfo.getPersonList()) {

     System.out.print(parse);

}

 

2013年8月15日 19:40

3个答案 按时间排序 按投票排序

0 0

最好在存储的时候就进行分割。

单个文件过大,读取时总会发生内存溢出的,
而且还不能并发读取和处理,无法有效利用CPU资源。

就像一张表,如果数据量太大,即使再怎么优化SQL和索引,也会很慢的,到了一定时候就该分表。

2013年8月16日 09:43
0 0

只能暂时先加大内存,或者存储时保存多个文件(限制文件大小)

2013年8月15日 22:23
0 2

相关推荐

    protobuf-java完整包

    4. **版本兼容**:protobuf设计了良好的版本兼容策略,新旧版本的.proto文件定义的消息类型可以互相读写,便于升级维护。 ### 二、protobuf的工作流程 1. **定义消息类型**:使用.proto文件定义数据结构,描述字段...

    protobuf-2.5.0下载

    protobuf,全称Protocol Buffers,是由Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成能够读写这些结构的代码,适用于多种编程语言,包括C++, Java, Python等。protobuf-2.5.0是该协议的一个...

    protobuf-2.5.0-windows-环境包

    在Java项目中,你可以通过添加此JAR到类路径来使用protobuf的功能,包括将protobuf定义的.proto文件编译为Java源代码,以及在运行时序列化和反序列化数据。 protobuf的核心概念包括消息类型定义(.proto文件)、...

    protobuf3.20.1 for android

    2. **持久化存储**:将数据序列化到本地文件,便于存储和检索。 3. **进程间通信**(IPC):在Android系统的不同组件间传递复杂的数据结构。 4. **资源文件**:存储游戏或应用的配置文件、结构化数据等。 对于...

    ProtoBufDemo

    1. 数据存储:将结构化数据持久化到本地文件,例如SQLite数据库。 2. 网络通信:在客户端与服务器之间高效地传输数据,减少网络带宽消耗。 3. 跨进程通信(IPC):在Android组件之间交换复杂的数据结构。 为了...

    protobuf-cpp-3.0.0

    - 编译器:`protoc`工具将.proto文件转换为C++, Java, Python等语言的源代码,便于在不同平台间交换数据。 - 序列化和反序列化:protobuf库提供API,允许程序将结构化数据高效地编码为字节流,反之亦然。 - 异构系统...

    protobuf 2.5 安装以及jar包

    在 Java 开发环境中,protobuf 的 jar 包是必不可少的,它提供了编译 proto 文件和运行时序列化/反序列化的功能。 **protobuf 2.5 安装步骤:** 1. **下载源码**:首先,你需要从 Google 官方仓库或第三方镜像站点...

    protobuf-master下载

    例如,如果你有一个.proto文件,你可以用protoc生成C++、Java或Python等语言的代码,这样你就可以在这些语言中方便地序列化和反序列化protobuf消息。 2. **protobuf库**:这是生成的源代码依赖的库,提供了序列化和...

    protobuf rpc

    protobuf是Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成能够读写这些数据的代码,支持多种编程语言,如C++, Java, Python等。而RPC则是一种让分布式系统中的不同节点之间能够像调用本地方法...

    protobuf-all-3.10.1.zip

    Protocol Buffers是Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成能够读写这种数据的代码,支持多种编程语言,包括C++, Java, Python等。"all"可能意味着这个压缩包包含了protobuf 3.10.1...

    protobuf工具

    通过protobuf编译器protoc,我们可以将这些.proto文件转换为多种编程语言(如C++、Java、Python等)的源代码,从而在代码中方便地进行序列化和反序列化操作。 在提供的压缩包文件"protoc-2.5.0-win32_x86"中,包含...

    protobuf-dt

    2. **代码生成**:根据 .proto 文件自动生成对应编程语言(如 Java、C++、Python 等)的序列化和反序列化代码,减少手动编写的工作量。 3. **智能提示**:提供代码补全功能,帮助开发者快速输入 Protobuf 定义中的...

    protobuf.js

    在protobuf中,数据是以二进制形式存储和传输的,bytebuffer.js提供了读写二进制数据的能力,这对于处理protobuf序列化的数据至关重要。 **protobuf.js的使用场景:** - **Web应用通信**:在客户端与服务器之间,...

    在Android 开发中使用Protobuf的实践和经验分享

    - **本地数据存储**:使用Protobuf序列化数据,可以将其存储在SQLite数据库或文件系统中。 - **序列化配置**:保存和加载应用的配置信息,提高读写效率。 5. **dyuproject** - Dyuproject是一个开源项目,它提供...

    protobuf-win

    这个文件可能包含了编译器可执行文件和其他必要的库文件,用于在本地构建和处理protobuf定义的协议消息。 protobuf的核心知识点包括: 1. **数据模型**:protobuf通过.proto文件定义数据结构,类似于XML或JSON,但...

    PyPI 官网下载 | protobuf-3.0.0b2-py2.py3-none-any.whl

    - **编译.proto文件**:使用protobuf编译器(protoc)将.proto文件转换为Python、Java、C++等目标语言的源代码。 - **编码和解码**:生成的代码提供API,可以方便地将对象序列化为二进制格式,或者从二进制数据反...

    Netty Protobuf3 测试服务器

    2. 编译protobuf3消息:使用protobuf编译器将.proto文件转换为Java和C#代码,生成的消息类可以直接在Netty服务器和Unity客户端中使用。 3. 创建Netty ChannelHandler:实现自定义的ChannelInboundHandler和...

    PufferDB,:blowfish:由protobuf和coroutines支持的android和jvm密钥值存储.zip

    在 Java 和 Kotlin 等 JVM 语言中,协程库如 Kotlin 的 `kotlinx.coroutines` 提供了一种轻量级的异步编程解决方案,可以有效解决 Android 和 JVM 平台上的回调地狱问题。在 PufferDB 中,协程被用来优化 I/O 操作,...

    protobuf-python-3.17.3.zip

    标题中的"protobuf-python-3.17.3.zip"指的是Protocol Buffers(简称protobuf)的Python绑定版本3.17.3的压缩包文件。Protocol Buffers是Google开发的一种数据序列化协议,它允许开发者定义数据结构,然后生成能够...

    dmidecode+protobuf+protoc等

    它允许用户在本地和远程主机之间复制文件,特别是在需要安全连接的场景下,比如从一台服务器向另一台服务器传输配置文件或者日志。 综合这三个工具,我们可以构建一个强大的系统管理与开发环境。例如,使用`...

Global site tag (gtag.js) - Google Analytics