diff -r 13588c901957 -r 9cf78a70fa4f src/java.base/share/classes/java/io/OutputStream.java --- a/src/java.base/share/classes/java/io/OutputStream.java Thu Oct 17 20:27:44 2019 +0100 +++ b/src/java.base/share/classes/java/io/OutputStream.java Thu Oct 17 20:53:35 2019 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,7 @@ * and sends them to some sink. *

* Applications that need to define a subclass of - * OutputStream must always provide at least a method + * {@code OutputStream} must always provide at least a method * that writes one byte of output. * * @author Arthur van Hoff @@ -47,6 +47,11 @@ */ public abstract class OutputStream implements Closeable, Flushable { /** + * Constructor for subclasses to call. + */ + public OutputStream() {} + + /** * Returns a new {@code OutputStream} which discards all bytes. The * returned stream is initially open. The stream is closed by calling * the {@code close()} method. Subsequent calls to {@code close()} have @@ -93,29 +98,29 @@ /** * Writes the specified byte to this output stream. The general - * contract for write is that one byte is written + * contract for {@code write} is that one byte is written * to the output stream. The byte to be written is the eight - * low-order bits of the argument b. The 24 - * high-order bits of b are ignored. + * low-order bits of the argument {@code b}. The 24 + * high-order bits of {@code b} are ignored. *

- * Subclasses of OutputStream must provide an + * Subclasses of {@code OutputStream} must provide an * implementation for this method. * - * @param b the byte. - * @exception IOException if an I/O error occurs. In particular, - * an IOException may be thrown if the + * @param b the {@code byte}. + * @throws IOException if an I/O error occurs. In particular, + * an {@code IOException} may be thrown if the * output stream has been closed. */ public abstract void write(int b) throws IOException; /** - * Writes b.length bytes from the specified byte array - * to this output stream. The general contract for write(b) + * Writes {@code b.length} bytes from the specified byte array + * to this output stream. The general contract for {@code write(b)} * is that it should have exactly the same effect as the call - * write(b, 0, b.length). + * {@code write(b, 0, b.length)}. * * @param b the data. - * @exception IOException if an I/O error occurs. + * @throws IOException if an I/O error occurs. * @see java.io.OutputStream#write(byte[], int, int) */ public void write(byte b[]) throws IOException { @@ -123,31 +128,31 @@ } /** - * Writes len bytes from the specified byte array - * starting at offset off to this output stream. - * The general contract for write(b, off, len) is that - * some of the bytes in the array b are written to the - * output stream in order; element b[off] is the first - * byte written and b[off+len-1] is the last byte written + * Writes {@code len} bytes from the specified byte array + * starting at offset {@code off} to this output stream. + * The general contract for {@code write(b, off, len)} is that + * some of the bytes in the array {@code b} are written to the + * output stream in order; element {@code b[off]} is the first + * byte written and {@code b[off+len-1]} is the last byte written * by this operation. *

- * The write method of OutputStream calls + * The {@code write} method of {@code OutputStream} calls * the write method of one argument on each of the bytes to be * written out. Subclasses are encouraged to override this method and * provide a more efficient implementation. *

- * If b is null, a - * NullPointerException is thrown. + * If {@code b} is {@code null}, a + * {@code NullPointerException} is thrown. *

- * If off is negative, or len is negative, or - * off+len is greater than the length of the array + * If {@code off} is negative, or {@code len} is negative, or + * {@code off+len} is greater than the length of the array * {@code b}, then an {@code IndexOutOfBoundsException} is thrown. * * @param b the data. * @param off the start offset in the data. * @param len the number of bytes to write. - * @exception IOException if an I/O error occurs. In particular, - * an IOException is thrown if the output + * @throws IOException if an I/O error occurs. In particular, + * an {@code IOException} is thrown if the output * stream is closed. */ public void write(byte b[], int off, int len) throws IOException { @@ -160,7 +165,7 @@ /** * Flushes this output stream and forces any buffered output bytes - * to be written out. The general contract of flush is + * to be written out. The general contract of {@code flush} is * that calling it is an indication that, if any bytes previously * written have been buffered by the implementation of the output * stream, such bytes should immediately be written to their @@ -172,22 +177,22 @@ * passed to the operating system for writing; it does not guarantee that * they are actually written to a physical device such as a disk drive. *

- * The flush method of OutputStream does nothing. + * The {@code flush} method of {@code OutputStream} does nothing. * - * @exception IOException if an I/O error occurs. + * @throws IOException if an I/O error occurs. */ public void flush() throws IOException { } /** * Closes this output stream and releases any system resources - * associated with this stream. The general contract of close + * associated with this stream. The general contract of {@code close} * is that it closes the output stream. A closed stream cannot perform * output operations and cannot be reopened. *

- * The close method of OutputStream does nothing. + * The {@code close} method of {@code OutputStream} does nothing. * - * @exception IOException if an I/O error occurs. + * @throws IOException if an I/O error occurs. */ public void close() throws IOException { }