本人用 Java读入按行读入文件。文件大小17.823M 纯文本文件,文件309310行 
读了将近1个小时,居然读不完,怎么回事?我的代码如下
//===============================================
FileReader fr = new FileReader(strFile+strFeedno);
BufferedReader br = new BufferedReader(fr);String strLine = "";
String strDoc = "";
while((strLine = br.readLine()) != null)
{
strDoc = strDoc + strLine + "\n";
//System.out.println(strLine);
} // --XXXXXXif( fr != null ) fr.close();
if( br != null ) br.close();
//=================================================另外Java有没有函数可以一次性将文件入读?刚才有位前辈说
//******************************
//你试试读一点 然后你刷新一下。*
//******************************
怎么刷新能不能详细一点 我刚开始用Java

解决方案 »

  1.   

    java 有这么慢吗要合理利用缓存塞比如读10000行就把缓存清空一次, 自己看javaAPI
      

  2.   

    FileReader fr = new FileReader(strFile+strFeedno);
    BufferedReader br = new BufferedReader(fr); String strLine = "";
    String strDoc = "";
    StringBuffer sb = new StringBuffer();
    while((strLine = br.readLine()) != null)
    {
    sb.append(strLine).append("\n");
    } strDoc = sb.toString();
     // --XXXXXX if( fr != null ) fr.close();
    if( br != null ) br.close();你这代码创建字符串对象太多了,试试这个。
      

  3.   

    问题可能出出在这里:
    strDoc = strDoc + strLine + "\n";
    建议使用StringBuffer
    用append来增加读取的字符!
      

  4.   

    主要还是String的问题,String拼接每次都创建一个新的对象,这样一来阅读创建的就越多,而且新创建的这个String对象就越大,速度也就越来越慢
    你可以试试看读一行输出一个行数,你应该可以看到一开始增长的速度不慢,但读下去就不行了解决方法就像上面所说,用StringBuffer或者StringBuilder替代