Java 一行一行的读写文件太慢了,怎样能快速读写文件呢?
请大家给出个方法,最好能给出实例代码,谢了!

解决方案 »

  1.   

    java好像都是用流的 方式读写文件的
      

  2.   

    BufferedReader br=new BufferedReader(new FileReader(new File("")));
    br.readLine()
      

  3.   

    试试fileChannel,速度方面应该比原有的效率会高一些
      

  4.   

    一行一行读慢?你试试用 C 语言直接读看看耗时是多少!要快只有一个办法,提高硬盘转速,降低寻道时间。我不知道楼上的都测试过 FilChannel 的读取时间没有,看看是 BufferedReader 快,还是 FileChannel 快!
      

  5.   

    这个readLine是最后的展现方式,耗时瓶颈不应该在这里 Buffering的设计就是为了提高效率的,和FileChannel相比虽然不清楚,但即使快也应不是readLine还是readNLines关系,读n行也得一行行数吧
      

  6.   

    上传commons,下载jspsmart,你把这两个包源码下下来研究研究吧,
    这个貌似还算可以,我用的就是这两个
      

  7.   

    1M1M的读?拜托,JAVA内存可是重要资源,你当内存是硬盘啊
      

  8.   

    读文件的话我只知道BufferedReader这个流的效率还可以,写的话你可以定义一个数组,byte[] b=new byte[自定义大小],先将你要写的内容写到数组中,然后通过FileOutputStream的read()方法将数组内的内容写到文件里面去,这样的话速度应该会快点,不过数组的大小不能定的太大,过大的话会报OutOfMemoryError,不过定义数组大小为1024*1024,即1M,这样的话还可以
      

  9.   

    抱歉,上面写错了,应该是FileOutputStream的write()方法
      

  10.   

    哦,对了,FileInputStream中的read()方法也可以读一个数组大小的内容,前提也是要定义一个byte[]数组
      

  11.   

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;public class TestRead { public static void main(String[] args) {

    try {
    FileInputStream fis=new FileInputStream("C:"+File.separator+"test.txt");
    byte[] b=new byte[1024*1024];
    while(fis.read(b)!=-1){
    System.out.println(new String(b));
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    }}
    这是读的方法,写的方法还请楼主自己想吧,不是我小气不写,而是给楼主自己发挥的空间,编程最主要的是思路,千万别背代码