因为要导出百万级的数据到一个文本文件,请教一下,是以下哪个类的IO性能最好的?BufferedOutputStream, BufferedWriter, DataOutputStream, FileOutputStream, FileWriter, OutputStream, OutputStreamWriter, PipedOutputStream, PipedWriter, PrintWriter, RandomAccessFile, StringWriter, Writer有具体测试比较最好。谢谢啊。

解决方案 »

  1.   

    呵呵,不要使用老的IO了,使用NIO包中的管道吧,这样速度快得多,因为它直接采用了操作系统中的native方法,比手工用这些来实现快捷得多,具体用法你可以搜索一下。
      

  2.   

    我用的是jdk1.4.2(汗,因为没时间换新的1.5试),不是很懂nio的用法啊,楼上的,直接给个例子吧,好吗
      

  3.   

    BufferedWriter 或者是使用java.nio里面的类。
      

  4.   

    BufferedOutputStream, BufferedWriter效果都很好,因为它使用了数据缓存机制,能加快数据的读取速度,建议使用
      

  5.   

    BufferedWriter 别的都没有这个快
      

  6.   

    用 BufferedXXX 吧,这些能缓冲,让待写入的东西排队等着,这
    个效率要高一些。当然了数据量大的写入总得有一点时间的,毕竟磁头只有一个,得
    一点一点地写进去的,要在 IO 操作上提高效率基本上也不大可能
    了,可以在写入前的处理程序中优化一下来提高。
      

  7.   

    BufferedWriter,另外最好给你的程序设置缓存机制,由于数据量很大,直接写入文件,再怎么说也不好解决效率问题,最好是先写到缓存里,然后再写入文件,这样效率会很大程度的提升.
      

  8.   

    带buffer的肯定比不带buffer的高。
    缓冲就是要提高效率的,避免读一个写一个。
    继续听楼下高见。
      

  9.   

    对这种low level级的api将性能没有多大意义
    你只要在读取的时候设置了缓冲就好了
      

  10.   

    要导出百万级的数据到一个文本文件??
    导出到access也好点啊。
      

  11.   

    buffered修饰的肯定要比直接读写的性能好了
      

  12.   

    经过这段时间的比较,我选择了 BufferWriter。NIO的包没试过,过段时间再试。