java - 为什么 FileInputStream 中的 read() 返回一个整数?

标签 java byte fileinputstream

<分区>

This页面显示说它是这样的,当它想要指示没有更多的字节要读取时,该方法可以返回 -1。

但是一个字节的范围是从-128到127,对吧? read() 的返回类型是 byte 不是更有意义吗,因为它返回一个字节?

感谢您的宝贵时间。

最佳答案

将值作为 int 返回的原因是它需要返回一个介于 0-255 之间的值,以及能够指示何时没有更多字节可从文件。通过使用 int,您可以返回整个范围的无符号正值 0-255,并指示文件何时完成。它无法仅使用 byte 值的 256 个不同值来提供此功能,其中一半在 Java 默认情况下为负数。

关于java - 为什么 FileInputStream 中的 read() 返回一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060589/

相关文章:

c++ - 如何在 C++ 中将 unsigned char* 转换为 std::string?

Java IO复制视频文件

java - 列出与Java中的模式匹配的目录中的文件

java - 尝试通过 Eclipse 连接到 Sql 服务器(我认为找不到驱动程序)

java - 使用 .equals() 比较两个字符串返回 False,但它们的字节数组相等

PHP - 将小端十六进制转换为大端十六进制

java - for循环中同时初始化两个变量

java - 不使用 SSL 时抛出 "java.io.EOFException: SSL peer shut down incorrectly"

java - 将对象写入文本文件的最佳方法

java - Apache POI - java.lang.NoClassDefFoundError : org/apache/commons/compress/utils/InputStreamStatistics