Ingsuifon 2020-02-05 17:35 采纳率: 0%
浏览 224
已采纳

关于System.out.write(int b)

这行代码我尝试读源码,发现这样一段

//FilterOutputStream.java
public void write(int b) throws IOException {
        out.write(b);
}

进一步跟踪

//OutputStream.java
private void ensureOpen() throws IOException {
        if (this.closed) {
                throw new IOException("Stream closed");
        }
}

public void write(int b) throws IOException {
        this.ensureOpen();
}

然而这段代码并没有使用参数b。有没有大佬能解答我的疑问。

  • 写回答

1条回答 默认 最新

  • 花匠小林 2020-02-05 17:47
    关注

    不知道你看的是哪个版本的,我在JDK8看到的是这样的(PrintStream.java):

         /**
         * Writes the specified byte to this stream.  If the byte is a newline and
         * automatic flushing is enabled then the <code>flush</code> method will be
         * invoked.
         *
         * <p> Note that the byte is written as given; to write a character that
         * will be translated according to the platform's default character
         * encoding, use the <code>print(char)</code> or <code>println(char)</code>
         * methods.
         *
         * @param  b  The byte to be written
         * @see #print(char)
         * @see #println(char)
         */
        public void write(int b) {
            try {
                synchronized (this) {
                    ensureOpen();
                    out.write(b);
                    if ((b == '\n') && autoFlush)
                        out.flush();
                }
            }
            catch (InterruptedIOException x) {
                Thread.currentThread().interrupt();
            }
            catch (IOException x) {
                trouble = true;
            }
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀