void write(int b)
           throws IOExceptionWrites to the output stream the eight low-order bits of the argument b. The 24 high-order bits of b are ignored. 有这个是为了某些时候的方便啊,如果没有这个函数,真要用的时候难道自己写代码转换?

解决方案 »

  1.   

    JDK上也说了,后24位bit将被忽略,直接void write(byte b)不是更好的吗?
      

  2.   

    在标准c里,向文件写入一个字节的函数是:
    int fputc( int c, FILE *stream );
    这里输入的是一个int c,但是写入到文件的仅仅是一个字节。这是一个失败的设计。Java的底层很有可能是调用这个函数来写文件,“人在屋檐下不得不低头”,Java为了兼容这个C函数做出了妥协。