You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Niall Pemberton (JIRA)" <ji...@apache.org> on 2007/10/15 17:15:51 UTC

[jira] Commented: (IO-92) Add DeferredPeriodicOutputStream

    [ https://issues.apache.org/jira/browse/IO-92?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534864 ] 

Niall Pemberton commented on IO-92:
-----------------------------------

Sorry I don't really see the point of this - how is this different from decorating a FileOutputStream with a BufferedOutputStream? Also I don't see the point in implementing DataOutput - since you can decorate any output stream using DataOutputStream to achieve this.

File myFile = ...
OutputStream out = new BufferedOutputStream(new FileOutputStream(myFile));
...
DataOutput dataOut = new DataOutputStream(out);
out.writeInt(...);

> Add DeferredPeriodicOutputStream
> --------------------------------
>
>                 Key: IO-92
>                 URL: https://issues.apache.org/jira/browse/IO-92
>             Project: Commons IO
>          Issue Type: New Feature
>          Components: Streams/Writers
>         Environment: Windows XP SP2, jdk 1.5
>            Reporter: Michele Mazzucco
>             Fix For: 1.4
>
>         Attachments: DeferredPeriodicOutputStream.java, DeferredPeriodicOutputStream.java, DeferredPeriodicOutputStream.java, DeferredPeriodicOutputStreamTest.java, DeferredPeriodicOutputStreamTest.java, DeferredPeriodicOutputStreamTest.java
>
>
> I've extended the ThresholdingOutputStream class with a new class which
> behaves different from DeferredFileOutputStream:
> - when the stream is closed, the content stored in memory is *always* flushed to disk (in DeferredFileOutputStream, instead, if the treshold
> is not reached data is lost)
> - DeferredFileOutputStream maintains data in memory only until the treshold value has been reached, then it immediately writes every byte
> to disk. This new implementation, instead, caches treshold bytes in memory, and every time that value is reached (that is, treshold, 2 * threshold, etc), it flushes data to disk. In other words it acts as a cache.
> - It implements the java.io.DataOutput interface, that is, it provides utility methods to write all primitive types (e.g. short, byte, char, int, float, long, double and String in different formats)

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