Library enhancement proposal for copying data from/to Reader/Writer InputStream/OutputStream
Alan Bateman
Alan.Bateman at oracle.com
Mon Dec 8 11:52:30 UTC 2014
On 08/12/2014 11:48, Chris Hegarty wrote:
> For completeness, here is the finalized spec that we intend to submit
> for approval. Just some minor rewording and grammaticality amendments
> over the previous.
>
> /**
> * Reads all bytes from this input stream and writes the bytes to
> the given
> * output stream in the order that they are read. On return, this
> input
> * stream will be at end of stream.
> * <p>
> * This method may block indefinitely reading from the input stream,
> * or writing to the output stream. The behavior for the case that
> the
> * input and/or output stream is <i>asynchronously closed</i>, or the
> * thread interrupted during the transfer, is highly input and
> output stream
> * specific, and therefore not specified.
> * <p>
> * If an I/O error occurs reading from the input stream or writing to
> * the output stream, then it may do so after some bytes have been
> read or
> * written. Consequently the input stream may not be at end of
> stream and
> * one, or both, streams may be in an inconsistent state. It is
> strongly
> * recommended that both streams be promptly closed if an I/O
> error occurs.
> *
> * @param out the output stream, non-null
> * @return the number of bytes transferred
> * @throws IOException if an I/O error occurs when reading or writing
> * @throws NullPointerException if {@code out} is {@code null}
> *
> * @since 1.9
> */
> public long transferTo(OutputStream out) throws IOException { ... }
I'm happy with this updated wording, it's consistent with the wording
that we already have in Files.copy, and it addresses all the points that
have come up.
-Alan
More information about the core-libs-dev
mailing list