[ https://issues.apache.org/jira/browse/FILEUPLOAD-207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13439366#comment-13439366 ]
frank commented on FILEUPLOAD-207: ---------------------------------- BufferedOutputStream flush data into disk only when buffer length is reached, while FileOutputStream will flush to disk for any length of bytes, I thought BufferedOutputStream reduced the IO write frequency. quota code of BufferedOutputStream: public synchronized void write(byte b[], int off, int len) throws IOException { if (len >= buf.length) { /* If the request length exceeds the size of the output buffer, flush the output buffer and then write the data directly. In this way buffered streams will cascade harmlessly. */ flushBuffer(); out.write(b, off, len); return; } if (len > buf.length - count) { flushBuffer(); } System.arraycopy(b, off, buf, count, len); count += len; } > enhance file write performance > ------------------------------ > > Key: FILEUPLOAD-207 > URL: https://issues.apache.org/jira/browse/FILEUPLOAD-207 > Project: Commons FileUpload > Issue Type: Improvement > Affects Versions: 1.2.2 > Environment: CentOS 5.5 > Reporter: frank > Labels: patch > Fix For: 1.3 > > Attachments: DiskFileItem.java > > Original Estimate: 0.5h > Remaining Estimate: 0.5h > > Class: org.apache.commons.fileupload.disk.DiskFileItem > Method: write(File file) > Line: 422 > Modification: > decorates the FileOutputStream with BufferedOutputStream (line: 424~426) > Method: get() > Line: 331 > Modification: > decorates the FileInputStream with BufferedInputStream (line: 340~342) > for method write, this change will have 2 times of speed-up. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira