A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小陈期待逆袭 于 2013-5-11 13:27 编辑

在文件输出流中write(int b)中,方法摘要上写的是"将指定字节写入此文件输出流"这里的参数类型为int类型,而我们传入的肯定是byte类型。
请问这里是会有一个强转动作吗?还是int直接可以接受byte型的数据????

4 个回复

倒序浏览
你看看API吧,write是个重载方法
回复 使用道具 举报
恩 你猜对了。有个强转的过程。


看源码:
  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;
回复 使用道具 举报
。。。。你才是高手啊....{:soso_e127:}都不懂你在说啥
回复 使用道具 举报
看看API吧,里面写的很清楚。
write(int b)要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马