黑马程序员技术交流社区

标题: 关于文件输出流中的write(int b)方法的问题 [打印本页]

作者: 小陈期待逆袭    时间: 2013-5-11 11:32
标题: 关于文件输出流中的write(int b)方法的问题
本帖最后由 小陈期待逆袭 于 2013-5-11 13:27 编辑

在文件输出流中write(int b)中,方法摘要上写的是"将指定字节写入此文件输出流"这里的参数类型为int类型,而我们传入的肯定是byte类型。
请问这里是会有一个强转动作吗?还是int直接可以接受byte型的数据????
作者: hou604720966    时间: 2013-5-11 11:46
你看看API吧,write是个重载方法
作者: Jacky_Chen1990    时间: 2013-5-11 11:56
恩 你猜对了。有个强转的过程。


看源码:
  1.     public void write(int c) throws IOException {
  2.         synchronized (lock) {
  3.             if (writeBuffer == null){
  4.                 writeBuffer = new char[writeBufferSize];
  5.             }
  6.             writeBuffer[0] = (char) c;
  7.             write(writeBuffer, 0, 1);
  8.         }
  9.     }
复制代码
writeBuffer[0] = (char) c;

作者: 李德全    时间: 2013-5-11 11:58
。。。。你才是高手啊....{:soso_e127:}都不懂你在说啥
作者: 飞鸟青崖    时间: 2013-5-11 12:05
看看API吧,里面写的很清楚。
write(int b)要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2