FileOutputStream写入方法(int)java



从API中,方法write(int byte)应该取一个表示字节的int,这样当EOF到来时,它可以返回-1。然而,可以做以下事情:

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

我预计不会编译,因为数字超过了字节范围。JVM如何准确地解释它?提前谢谢。

来自OutputStream.write(int)文档:

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

强调我的。

请注意,该方法采用int。由于100000是一个有效的整数文本,因此没有必要不编译它。

你在哪里读到关于EOF和-1的那部分?

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

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


我预计不会编译,因为数字超过了的字节范围

不,这会编译得很好。编译器只是查找一个int。(long不会编译)。

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

相关内容

  • 没有找到相关文章

最新更新