jtp为JTextPane,这种方法读出的文件最后会多出一个回车符,所以长度要减一。
    BufferedReader br=new BufferedReader(new FileReader("test.txt"));
    StringBuffer sb=new StringBuffer();
    String s="";
    while((s=br.readLine())!=null)
    {
      sb.append(s+"\n");
      jtp.setText(sb.toString());
    }
    System.out.println("字符数为:"+(jta.getText().length()-1));

解决方案 »

  1.   

    补充:Windows下的回车符有两个字符,而Java默认的只有一个字符
    你若看到这算出的字符个数与文本文件长度不符不用奇怪!
      

  2.   

    Eraserpro(Eraser,毁灭者?橡皮?) 
    也许我说得不清楚,你这程序没考虑jtextpane自身的大小问题.jtextpane不带有滚动框.文本文件肯定是不需要读完,要读到字符不能超过jtextpane的显示范围.代码中肯定要用的jtextpane自身的属性,像行数等等,比较难办