gpt4 book ai didi

java - 为什么在采用 int 参数的 BufferedOutputStream write 方法中将 int 转换为 byte?

转载 作者:行者123 更新时间:2023-11-30 06:17:01 25 4
gpt4 key购买 nike

在“Java 编程简介”第 9 版中,Y. Daniel Liang 在关于二进制 IO 的第 19 章中编写了一个代码示例,其中 write() 方法将 int 转换为 byte .为什么?

例如:

    /*
* Read and write bytes.
*/
int intByte = 0;

int numberOfBytesCopied = 0;

while( (intByte = bufferedInputStream.read()) != -1){

bufferedOutputStream.write((byte)intByte);

numberOfBytesCopied ++;
}

Java Documentation表示三个重载的write方法:一个取byte数组,一个取byte数组(允许指定起点和终点),一个取int。

为什么文本将上面的 intByte 转换为一个字节?通过进行转换,我没有看到采用单个字节的 write 方法?由于程序运行没有错误,JVM 是否将 int-cast-to-a-byte 重铸为 int?或者是 JVM 将孤独的字节转换为具有单个元素的数组以满足 write 参数?或者?

我编写了示例代码并在有强制转换和无强制转换的情况下运行它,两者都运行顺利。所以我很想取消 Actor 阵容,但我想这是有原因的,我不明白。

最佳答案

从技术上讲,没有理由进行强制转换。可能作者觉得加了类型转换,节目会更清晰。

关于java - 为什么在采用 int 参数的 BufferedOutputStream write 方法中将 int 转换为 byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26390105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com