Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8191737

Add Reader::transferTo(Writer)

    XMLWordPrintable

Details

    • CSR
    • Resolution: Approved
    • P4
    • 10
    • core-libs
    • None
    • minimal
    • Java API
    • SE

    Description

      Summary

      Add new API for transferring data from a java.io.Reader to a java.io.Writer like already existing java.io.InputStream.transferTo(java.io.OutputStream).

      Problem

      In order to transfer all data from a Reader to a Writer mostly the same code has to be written or an external library has to be used instead. This overhead could be reduced by introducing such behavior directly within the JDK as already available on InputStream for byte data.

      Solution

      Add an new API that implements the behavior that would otherwise need to be written by the user.

      Specification

      java.io.Reader

      +    /**
      +     * Reads all characters from this reader and writes the characters to the
      +     * given writer in the order that they are read. On return, this reader
      +     * will be at end of the stream. This method does not close either reader
      +     * or writer.
      +     * <p>
      +     * This method may block indefinitely reading from the reader, or
      +     * writing to the writer. The behavior for the case where the reader
      +     * and/or writer is <i>asynchronously closed</i>, or the thread
      +     * interrupted during the transfer, is highly reader and writer
      +     * specific, and therefore not specified.
      +     * <p>
      +     * If an I/O error occurs reading from the reader or writing to the
      +     * writer, then it may do so after some characters have been read or
      +     * written. Consequently the reader may not be at end of the 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 writer, non-null
      +     * @return the number of characters transferred
      +     * @throws IOException if an I/O error occurs when reading or writing
      +     * @throws NullPointerException if {@code out} is {@code null}
      +     *
      +     * @since 10
      +     */
      +    public long transferTo(Writer out) throws IOException

      Detailed changes see webrev

      http://cr.openjdk.java.net/~reinhapa/reviews/8191706/webrev.00

      Attachments

        Issue Links

          Activity

            People

              reinhapa Patrick Reinhart
              reinhapa Patrick Reinhart
              Alan Bateman, Brian Burkhalter, Doug Lea
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: