On 25 October 2012 20:15,  <ggreg...@apache.org> wrote:
> Author: ggregory
> Date: Thu Oct 25 19:15:57 2012
> New Revision: 1402280
>
> URL: http://svn.apache.org/viewvc?rev=1402280&view=rev
> Log:
> [IO-353] Add API IOUtils.copy(InputStream, OutputStream, int).
>
> Modified:
>     commons/proper/io/trunk/src/changes/changes.xml
>     commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
>     
> commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsCopyTestCase.java
>
> Modified: commons/proper/io/trunk/src/changes/changes.xml
> URL: 
> http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=1402280&r1=1402279&r2=1402280&view=diff
> ==============================================================================
> --- commons/proper/io/trunk/src/changes/changes.xml (original)
> +++ commons/proper/io/trunk/src/changes/changes.xml Thu Oct 25 19:15:57 2012
> @@ -47,6 +47,9 @@ The <action> type attribute can be add,u
>    <body>
>      <!-- The release date is the date RC is cut -->
>      <release version="2.5" date="201?-??-??" description="New features and 
> bug fixes.">
> +      <action issue="IO-353" dev="ggregory" type="add" due-to="ggregory">
> +        Add API IOUtils.copy(InputStream, OutputStream, int)
> +      </action>
>        <action issue="IO-349" dev="ggregory" type="add" due-to="scop">
>          Add API with array offset and length argument to 
> FileUtils.writeByteArrayToFile.
>        </action>
>
> Modified: 
> commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
> URL: 
> http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java?rev=1402280&r1=1402279&r2=1402280&view=diff
> ==============================================================================
> --- commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java 
> (original)
> +++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java 
> Thu Oct 25 19:15:57 2012
> @@ -1749,6 +1749,30 @@ public class IOUtils {
>      }
>
>      /**
> +     * Copy bytes from an <code>InputStream</code> to an 
> <code>OutputStream</code> using an internal buffer of the
> +     * given size.
> +     * <p>
> +     * This method buffers the input internally, so there is no need to use 
> a <code>BufferedInputStream</code>.
> +     * <p>
> +     *
> +     * @param input
> +     *            the <code>InputStream</code> to read from
> +     * @param output
> +     *            the <code>OutputStream</code> to write to
> +     * @param bufferSize
> +     *            the bufferSize used to copy from the input to the output
> +     * @return the number of bytes copied
> +     * @throws NullPointerException
> +     *             if the input or output is null
> +     * @throws IOException
> +     *             if an I/O error occurs
> +     * @since 2.5
> +     */
> +    public static long copy(InputStream input, OutputStream output, int 
> bufferSize) throws IOException {
> +        return copyLarge(input, output, new byte[bufferSize]);
> +    }
> +
> +    /**
>       * Copy bytes from a large (over 2GB) <code>InputStream</code> to an
>       * <code>OutputStream</code>.
>       * <p>
> @@ -1766,7 +1790,7 @@ public class IOUtils {
>       */
>      public static long copyLarge(InputStream input, OutputStream output)
>              throws IOException {
> -        return copyLarge(input, output, new byte[DEFAULT_BUFFER_SIZE]);
> +        return copy(input, output, DEFAULT_BUFFER_SIZE);

Please don't mix changes in a single commit.

AFAICT the above change is nothing to do with IO-353.

>      }
>
>      /**
>
> Modified: 
> commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsCopyTestCase.java
> URL: 
> http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsCopyTestCase.java?rev=1402280&r1=1402279&r2=1402280&view=diff
> ==============================================================================
> --- 
> commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsCopyTestCase.java
>  (original)
> +++ 
> commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsCopyTestCase.java
>  Thu Oct 25 19:15:57 2012
> @@ -86,6 +86,39 @@ public class IOUtilsCopyTestCase extends
>          assertEquals(inData.length,count);
>      }
>
> +    public void testCopy_inputStreamToOutputStreamWithBufferSize() throws 
> Exception {
> +        testCopy_inputStreamToOutputStreamWithBufferSize(1);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(2);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(4);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(8);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(16);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(32);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(64);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(128);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(256);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(512);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(1024);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(2048);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(4096);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(8192);
> +        testCopy_inputStreamToOutputStreamWithBufferSize(16384);
> +    }
> +
> +    private void testCopy_inputStreamToOutputStreamWithBufferSize(int 
> bufferSize) throws Exception {
> +        InputStream in = new ByteArrayInputStream(inData);
> +        in = new YellOnCloseInputStream(in);
> +
> +        ByteArrayOutputStream baout = new ByteArrayOutputStream();
> +        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, 
> true);
> +
> +        long count = IOUtils.copy(in, out, bufferSize);
> +
> +        assertEquals("Not all bytes were read", 0, in.available());
> +        assertEquals("Sizes differ", inData.length, baout.size());
> +        assertTrue("Content differs", Arrays.equals(inData, 
> baout.toByteArray()));
> +        assertEquals(inData.length,count);
> +    }
> +
>      public void testCopy_inputStreamToOutputStream_nullIn() throws Exception 
> {
>          OutputStream out = new ByteArrayOutputStream();
>          try {
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to