是否是java的缓冲区大小的问题呢?
LineNumberReader有个设置读缓存大小的构造函数
LineNumberReader((Reader in,int sz));试试。

解决方案 »

  1.   

    试过了。
    LineNumberReader((Reader in,45000000)); //文件大约有42M大
    不行。还是出错
      

  2.   

    你为什么要用LineNumberReader 呀?就用BufferedReader呀。
    你的RedHat下有Tomcat么?你在Tomcat下测一下,看看是不是Web服务器造成的。
      

  3.   

    搂主是用的jdk1.4吗?
    import java.util.regex.*;
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    import java.nio.charset.*;
    import java.nio.channels.spi.*;public class LineCounter {
      public static void count(String file) throws IOException {
        FileInputStream fis = new FileInputStream(file);
        FileChannel fileChannel = fis.getChannel();    int size = (int) fileChannel.size();
        MappedByteBuffer buffer = null;
        try {
          buffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, size);
        }
        catch (IOException e) {
          System.out.println("文件是不是真的存在哟?");
          System.exit(1);
        }
        finally {
          fileChannel.close();
        }
        Charset charset = Charset.forName("ISO-8859-1");
        CharsetDecoder decoder = charset.newDecoder();
        CharBuffer lines = decoder.decode(buffer);
        
        Pattern linePattern = Pattern.compile(".*\r?\n");
        
        Matcher matcher = linePattern.matcher(lines);
        int numberOfLines = 0;
        for(; matcher.find(); numberOfLines++){
        
        }
        fileChannel.close();
        System.out.println("有"+numberOfLines+"行");  }  public static void main(String[] args) {
           if(args.length == 0) {
          System.err.println("请输入参数");
          System.exit(1);
        }
        try {
          LineCounter.count(args[0]);
        }
        catch (IOException ex) {
          ex.printStackTrace();
          System.exit(1);
        
      }
    }
      

  4.   

    File f = new File(fileName);
          try {
    BufferedReader read = new BufferedReader(new FileReader(fileName));
    int count=0;
    String line;
    while((line=read.readLine())!=null){
             if(line.length()>0)
             count++;
    }
          }
      

  5.   

    FileReader fr = new FileReader("D:/"dfdffd.);
                  BufferedReader br = new BufferedReader(fr);              while ( (s = br.readLine()) != null) {  }