从一个.txt文件中读取里面的中文,现在使用的是readLine方法,每次只能读取一行,所以感觉很慢,有没有一次就可用把文件中所有内容读出来的方法?请赐教谢谢

解决方案 »

  1.   

    readLine是BufferedReader类的方法,既然都Buffered了,理论上也不会因为每次多读一些而提升很多效率了。不过你可以试试直接用带char[]参数read方法一直读取大量内容试试看。
      

  2.   

    readLine也是一个个字符读进来后进行组合
    你读一堆进来也就是一个个字符进行然后你自己组合.
    从读取方式来看都是一个个字符读,始终是不会变的,所以速度应该是一样
    但是如果你自己组合成字符串的话如果逻辑不是很正确,效率不会比readLine高
      

  3.   

    你申请一个很大的数组,直接传给BufferedLine.read去读不就OK了吗?
    一次读一个文件进内存不太好的,所以没有这种函数,比如,有些文件的长度可能比内存容量还要大。
    如果你确定你的文件不会非常大,比如不会超过2K,那么你就这样:
    BufferedReader in = ……;
    char buffer[] = new char[2048];
    in.read(buffer);
      

  4.   

    我觉得readline的效率就已经不错了  楼上已经有人说过了  无论怎么读都是以char的方式去拼接的,如果你直接读个大文件过来你想下你内存抗的住?如果是通过服务器  不知道了  我试过一次读一个300多M的文件  直接死机。。现在好象更多人在想如何把文件拆开读。。