JD,
Yeah... char are probably written out by using the default char encoding translation. So for each characher it would have to go through an active lookup table. Your mistake is the most common, the simple benchmark is often the most decieving. If you had used a profiler on your code the translation would have stuck out like a sore thumb. This is also the biggest mistake made in graphics programming too, people forgetting to make screen compatible opaque images for there off screen buffers. Then they wonder why it takes soo long to blit them to the screen.
Now when you say 4 seconds, that would make it FASTER than c file, but not as fast a C Win32? That''s even better performance than I would have expected.
Anyways, if you ever find yourself doubting java, just post another question here or at the java forums ( forum.java.sun.com ).