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

时间:2014-11-15 17:19:10

标签: java file serialization inputstream

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

如何从我的代码中将数据读入相应的数据类型? (将int读入int,byte into byte等)

或者这不可能吗?

1 个答案:

答案 0 :(得分:0)

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

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

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 ... 
    }
}

我会从最小的开始,然后去更大,例如:

  • 字节
  • 整数
  • 的BigDecimal
  • 布尔
  • 字符
  • 和最后一个字符串