Added method for getting InputStream from ByteArrayOutputStream & IOUtils 
avoiding unnecessary array allocation and copy
------------------------------------------------------------------------------------------------------------------------

                 Key: IO-137
                 URL: https://issues.apache.org/jira/browse/IO-137
             Project: Commons IO
          Issue Type: New Feature
          Components: Streams/Writers
    Affects Versions: 1.3.2, 1.4, AFTER-1.4
         Environment: Any OS with appropriate JVM
            Reporter: Nikunj Trivedi


Patch inclues following two methods and test cases for both.

1) New Method: ByteArrayOutputStream.toInputStream
ByteArrayOutputStream exposes its byte buffers by toByteArray(), which creates 
a fresh buffer and copy existing data to it.
A new method toInputStream() available in patch returns the current contents of 
baos, as an InputStream, avoiding unnecessary allocation and copying.

2) New Method: IOUtils.toFullyBufferedInputStream
There are situations where the InputStream source is available and it has to be 
passed to different modules for processing.
It is needed to fetch the full contents of the InputStream in internal 
buffer(IOUtils.toByteArray() ), convert this buffer to ByteArrayInputStream and 
use that stream instead. But this is wasteful since toByteArray() requires one 
fresh allocation and copy operation.
New method copies InputStream to ByteArrayOutputStream and returns 
baos.toInputStream(), avoiding unnecessary memory allocation and copy.

Testcases are available in respective classes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to