Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定java中InputStream中下一次读取的类型_Java_File_Serialization_Inputstream - Fatal编程技术网

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

确定java中InputStream中下一次读取的类型,java,file,serialization,inputstream,Java,File,Serialization,Inputstream,假设有一个包含一组原语的文件,但是我不知道原语的类型 如何从代码中将数据读入适当的数据类型?(即将int读入int,字节读入字节等) 或者这是不可能的?您可以尝试将其转换为所需类型。。。如果转换失败,请尝试下一种类型,依此类推。最后一个类型是字符串 例如,如果文件包含这些行: 1 1.3 12345324223423 test true false 如果可以转换,则可以测试每个值: try { int value = Integer.parseInt(test); } catch (N

假设有一个包含一组原语的文件,但是我不知道原语的类型

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


或者这是不可能的?

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

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

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 ... 
    }
}
我会从最小的开始,然后转到更大的,例如:

  • 字节
  • 整数
  • 长的
  • 大十进制
  • 布尔值
  • 煤焦
  • 最后一串

这是不可能的。最后,文件只是一个字节序列,任何东西都不允许知道前4个字节是int,后两个字节是char,等等。文件需要具有指定的格式才能可读。