java - 我如何在 Kryo 中检测到 "End of File"?

标签 java kryo

我正在从 Kryo 中的 gzip 文件中读取未知数量的对象:

Input input = new Input(new GZIPInputStream(Files.newInputStream(inputFile)));

问题是:如何检测何时从文件中读取了最后一个对象?当我写对象时,我事先不知道要写多少,所以我不能在文件开头包含对象的计数。

我可以在文件末尾写一些“虚拟”对象来指示它是最后一个,但这看起来很难看。

最佳答案

在读取每个对象后使用 Input#eof() 检查您是否到达流的末尾。

关于java - 我如何在 Kryo 中检测到 "End of File"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314599/

相关文章:

java - 这是好的编程习惯吗?构造函数和实例变量

java - 如何在测试的拆卸方法中获取 junit 断言失败原因

java - 如何在 Java DOM XML 构建器中添加命名空间前缀

java - KryoNet - 如何使用 Boolean xx = new clientprocess(); 启动客户端获得返回值?

java - 处理序列化框架不兼容的版本更改

elasticsearch - ElasticSearch JarHell com.esotericsoftware.minlog.Log $ Logger

java - 我正在尝试读取一个文本文件,然后拆分行,以便获得两组不同的名称

java - 如何包含外部 .class 文件以在我的 Java 代码中使用它?

maven - NoSuchMethodError : DefaultKryoFactory - while trying to run a storm-starter project topology 错误

java - 使用函数的结果作为新函数的参数,但为什么会出现异常?