On Sat, 26 Sep 2009 11:47:19 -0400, Lew <noone@lewscanon.com> wrote,
quoted or indirectly quoted someone who said :
As for your conclusions about speed, on what evidence are they based?
C writes a block of ints as a large chunk of bytes. It does not need
to do any processing on each element the way Java does with
DataOutputStream.
Here is the code for DataOutputStream.writeInt()
/**
* Writes an <code>int</code> to the underlying output stream as
four
* bytes, high byte first. If no exception is thrown, the counter
* <code>written</code> is incremented by <code>4</code>.
*
* @param v an <code>int</code> to be written.
* @exception IOException if an I/O error occurs.
* @see java.io.FilterOutputStream#out
*/
public final void writeInt(int v) throws IOException {
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(4);
}
I think Lew may have expected writeInt to be a native method that
copied 4 bytes as a single chunk to the output buffer.
I think Lew may have been speaking about the NIO buffer approach.