On Oct 25, 2012, at 17:51, sebb <seb...@gmail.com> wrote:

> 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.

It is a refactoring that uses the new method.

Gary
>
>>     }
>>
>>     /**
>>
>> 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
>

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

Reply via email to