try{
     File file=new File(XX.txt);
     int size=(int)file.length();
     int chars_read=0;//设置读文件指针
     FileReader in=new FileReader(XX.txt);
     char[] data=new char[size];
     while(in.ready()){
         int len =in.read(data,chars_read,size-chars_read);
         if(len < 0 )
             break;
         if(len == 0 )
             continue; 
         jTextArea1.append(new String (data, chars_read, len));
         chars_read+=len;
         if( (chars_read%1024) == 0 )
              jTextArea1.append("\n");
      }
    in.close();
   }
   catch(IOException ex){}

解决方案 »

  1.   

    请问: farawayzheng_necas(遥远) 
    在下是新手,上面代码有点不明白!
    chars_read+=len;
             if( (chars_read%1024) == 0 )
                  jTextArea1.append("\n");
    那要是chars_read不正好是1024的倍数呢?假如1030,照你的代码好像是不换行吧?
    我想楼主的意思好像是,假如读了1030个,那么1024个在一行,另6个在另一行了吧?
    不知我说得对不对,如果我理解错了,麻烦帮我解释一下!
      

  2.   

    好!谢谢 farawayzheng_necas(遥远) !
      

  3.   

    farawayzheng_necas(遥远) :
       我还以为能成,可不行!我想问以下:
    int len =in.read(data,chars_read,size-chars_read);
    中的len是不是就等于size了,如果这样的话,那么     jTextArea1.append(new String (data, chars_read, len));
    那么不就一次就放在了jTextArea1中了,没换行啊!不知我说的对不对!
            
      

  4.   

    int len =in.read(data,chars_read,1024);