[ https://issues.apache.org/jira/browse/IO-92?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michele Mazzucco updated IO-92: ------------------------------- Attachment: DeferredPeriodicOutputStreamTest.java DeferredPeriodicOutputStream.java I've updated the class because of a bug which happens when one tries to write a chunk of data (altogether) which is bigger than the threshold. In this case the "temporary" arrays grows, while it shouldn't. I've fixed the problem by overriding the write(byte[] b) and write(byte[] b, int off, int len) methods. p.s. I've implemented also a version which uses a ByteBuffer attached to a FileChannel, but I've found out that it generally performs worst. > 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. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]