java - 确定java中InputStream中下一个读取的类型

标签 java file serialization inputstream

假设有一个文件,其中写入了一组基元,但我不知道基元的类型。

如何从代码中将数据读入适当的数据类型? (即将 int 读入 int、将 byte 读入 byte 等)

或者这是不可能的?

最佳答案

您可以尝试将其转换为所需的类型...如果转换失败,您可以尝试下一个类型,依此类推。最终类型是字符串。

例如,如果文件包含这些行:

1
1.3
12345324223423
test
true
false

您可以测试每个值是否可以转换:

try {
    int value = Integer.parseInt(test);
}
catch (NumberFormatException e) {

    try {

        double value2 = Double.parseDouble(test);
    }
    catch (NumberFormatException ex) {

            ... and so on ... 
    }
}

我会从最小的开始,然后逐渐增大,例如:

  • 字节
  • 整数
  • 大十进制
  • boolean 值
  • 查尔
  • 和最后一个字符串

关于java - 确定java中InputStream中下一个读取的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948497/

相关文章:

javascript - 从 JS 或 PHP 调用 .jar 文件

c - C语言读写大文件的有效方法

c++ - 在二进制文件中写入对齐数据

perl - perl 的 int(-M $file) 有什么作用?

java - 序列化Java AudioClip的解决方法

java - 可以使用哪些扩展/插件/提供程序机制来使我的 Web 应用程序可扩展?

java - 并发 HashMap 删除复杂值

java - 如何让 Eclipse 代码格式化程序包装赋值语句 = 运算符

c - 在任何平台上使用 ANSI C 保存和加载数据

Java:对可序列化性的限制