为什么字节数据类型用于文件IO Java?

时间:2019-01-31 15:04:46

标签: java

我了解字节是Java IO的基础数据类型,但是为什么使用字节来读取和写入字节,因为它的最大值范围是-128到127。此范围是整数,如何将整数用于读取和写入不同的符号字符还是二进制数据?

期望是要理解为什么字节数据类型用于Java IO。

1 个答案:

答案 0 :(得分:2)

Java是C / C后设计++一些讨论主题:

  • 爪哇文本StringReader/Writer)包含Unicode所以在混合脚本文本可以被组合。内部字符串是UTF-16的阵列char; .class文件使用UTF-8字符串常量。因此byte[]InputStream/OutputStream)仅适用于二进制数据。在文本和二进制数据之间,总是使用二进制数据的编码/字符集进行转换。

  • 数值的原始类型只在签名版本存在。 (除char,人们可以考虑非数字)的想法是根出于C ++符号/无符号“问题”。所以也byte是从-128签署到127但溢出是在Java不相干也 所以可以做到:

    字节b =(字节)255; // 0xFF的或-1

  • 原始类型byte/short/int/long的字节大小固定为 ,其中C是臭名昭著的跨平台版本,像C uint32这样的东西有点丑陋(32 )。

我曾经经历过棘手的C错误,这些错误带有我自己签名的/未签名的(在10年之前),我认为这个决定是可以的。

这是比较容易计算已签名的头脑集,然后在最后考虑的值作为无符号,不是让整个表达式符号和无符号的部分。

如今有支撑在Java用于计算关于一个无符号值的解释,例如Integer.parseUnsignedInt