import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.io.FileOutputStream;
import java.util.Random;


public class StringNIOTestMain{

        private static Random rand = new Random();
        public static long write(){
                FileOutputStream fos = null;
                long sep = System.currentTimeMillis();
                Charset cs = Charset.forName("US-ASCII");

                try{
                        fos = new FileOutputStream("nio_out.txt");
                        FileChannel fc = fos.getChannel();

                        StringBuilder sb = new StringBuilder(21000);
                        for(int i = 0; i < 1000000; i++){
                                sb.append(rand.nextLong());
                                sb.append(\'\\n\');

                                if(i%1000==0){
                                        fc.write( cs.encode( sb.toString() ) );
                                        sb.delete(0, sb.length());
                                }
                        }
                        fc.write( cs.encode( sb.toString() ) );
                        fc.close();
                }catch(Exception e){
                        e.printStackTrace();
                }finally{
                        try{
                                fos.close();
                        }catch(Exception e){
                                e.printStackTrace();
                        }
                }
                return System.currentTimeMillis() - sep;
        }
        public static void main(String[] args){
                System.out.println( write() );
        }
}




-------------------------------------------------------

아무리 해도 몇백ms 차이가 줄어들지가 않네..

접근 방법이 잘못된걸까?