You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "John Mark (Jira)" <ji...@apache.org> on 2020/02/12 16:46:00 UTC

[jira] [Created] (IO-651) Provide method to retrieve data from DeferredFileOutputStream as InputStream

John Mark created IO-651:
----------------------------

             Summary: Provide method to retrieve data from DeferredFileOutputStream as InputStream
                 Key: IO-651
                 URL: https://issues.apache.org/jira/browse/IO-651
             Project: Commons IO
          Issue Type: Improvement
          Components: Streams/Writers
    Affects Versions: 2.6
            Reporter: John Mark


It would be very helpful to have to {{toInputStream()}} method on the {{DeferredFileOutputStream}} class. Besides for convenience, it would allow for improved efficiency since in the case of in-memory data the byte buffer would not need to be copied (as opposed to the current {{getData()}} method). 

The implementation is pretty simple and can be something like the following (based on the current {{writeTo(OutputStream)}} method):
{code:java}
public InputStream toInputStream() throws IOException {
    if (!closed) {
        throw new IOException("Stream not closed");
    }

    if (isInMemory()) {
        return memoryOutputStream.toInputStream();
    } else {
        return Files.newInputStream(outputFile.toPath());
    }
}
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)