繁体   English   中英

FileOutputStream写入方法(INT)Java

[英]FileOutputStream write method (int) java

从API中,方法write(int byte)应该采用表示一个字节的int,这样,当EOF到来时它可以返回-1。 但是,可以执行以下操作:

FileOutputStream fi = new FileOutputStream(file);
    fi.write(100000);

我期望由于数字超出字节范围而无法编译。 JVM如何准确地解释它? 提前致谢。

OutputStream.write(int) doc:

将指定的字节写入此输出流。 写入的一般约定是将一个字节写入输出流。 要写入的字节是参数b的八个低位。 b的24个高阶位被忽略。

强调我的。

请注意,该方法采用int 并且由于100000是有效的整数文字,因此没有意义。

您从哪里读到有关EOF和-1的那一部分?

方法仅写入一个字节 ,由于某种原因,该字节作为int传递。

将指定的字节写入此输出流。 写入的一般约定是将一个字节写入输出流。 要写入的字节是参数b的八个低位。 b的24个高阶位被忽略。


我期望由于数量超出字节范围而无法编译

不,这样可以编译。 编译器仅查找int long不会编译)。

除最低8位外的所有内容都将被忽略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM