如何在Java Swing中将文本文件读入jtextarea

|| 这是我的代码:
try {
    String textLine;
    FileReader fr = new FileReader(\"ad.txt\");
    BufferedReader reader = new BufferedReader(fr);
    while((textLine=reader.readLine()) != null) {
        textLine = reader.readLine();
        jTextArea1.read(reader, \"jTextArea1\");
    }
}
catch (IOException ioe) {
    System.err.println(ioe);
    System.exit(1);
}
我的.txt文件包含以下内容:   contig00001长度= 586 numreads = 4   CGGGAAATTATCcGCGCCTTCACCGCCGCCGGTTCCACCGACGAACGGATACTGCGtGaa   ggCCGCGATCCCGTCggaCGGAAAaCGCCcTGGCCCGGGAaCATACCGTTCGGGCCGCCA   AGTGTTATAGCCGGACCACTTGTCAGAACATTTCCaaTCCGAAGATGTGAGTtCGGAAGg   TAAAAGCCCGACAAGTTGCGCGgTGAATTTACCTTtACcGCACGATATGCGTCCGTATTA   AaGAAAaGTTCGAAATTATCAGTAAGGCCGACCTGAAaGCTGACCGGGAGTTCAACAAAA   TCTGCATCACCcGGgTCACGGTCGAAATTGCTGTACGCGGCGCTGAACGTAAATTCACCC   TTTcTAAGGGTGTCGCcGTCGTAAACCGTAAaCAaGCCGGTAGCGCCGCCCATCGGGCCG   CCGGTACCAACCGTCGGTGCCGTGTTTCTtGCATCATTGTCCGATCGAGCGTTCTCGTGTCC   GCTTGTGCAAaTCCTGCAaTAGCTAACGTGAAAACGATCAGAGCTGTTGTAAATACTCTA   TAAGCGAGATTCATCACATTCCTCcGCCGAAATAAAAAGTTAATTt      contig00002长度= 554 numreads = 4   TGCGCCAaCCGCGCTCTtCATAAaTGGGCACTGCTCCCGATGGCCgACTCGGGCGGTTCG   CCATGAGATCTTTGCCtACCcAGgAaCtCACcACCAAGTCTGATTGCTGTGTGTTTtCTT   CAAGTCCCTATTTCTATTCtCTTtAATGGAACCCGTAGGAAACCCGTGTAGGACGCGGGA   aCCGCACTTgAAGGGGGAGGCGCGGGGTACCGGtCCGGGAACGTACGGGTACCGGCGGGG   gAGGGGAGGGGGACCgCTCCGGGAAGGCCAGGGGACGGATTGGGGAAGGgCGGGTACCGA   AGCGGGgAAaTGGGggAaCcGGCGAGAGGGTTCCTCGCTAAGTGGGGGAAATaGGGGAAA   GGTTGACCAGTGGTtCCCcGCTCTCGTAACATGCCTCAGATAGCGCCATCCGCTGTACCT   GGtcaggtcGctggcaacttcggccgagcaggtgaacccgaaaggtgagggtcagtgtga   cacaccaaccgaacaccgacgaggcaagcgtaggagccggcgtggccgcgcccggcggcg   ctgaggactcctcg 但是通过跳过前两行显示输出。 这是什么原因呢?     
已邀请:
        您不需要while循环或readLine方法。叫call1ѭ 编辑:更新您的评论。如果要跳过以>开头的所有行,则需要手动读取文件,然后将每行追加到textArea。 所以像这样:
String line;
while ((line = reader.readLine()) != null)
{
    if (!line.startsWith(\">\"))
    {
        jTextArea.append(line + \"\\n\");
    }
}
    
        采用:
FileReader reader = new FileReader(\"filename.txt\");
txtarea.read(reader, \"filename.txt\"); //Object of JTextArea
您只需要上述两行即可从文件读取并将其放入JTextArea ...     
        问题一定已经解决了,但是仍然没有回答为什么跳过前两行的问题。 创建
reader
,然后从文件中读取前两行,剩余的行将加载到
jTextArea1
中。 您的代码:
/* 1 */ while((textLine=reader.readLine())!=null){
/* 2 */     textLine = reader.readLine();
/* 3 */     jTextArea1.read(reader,\"jTextArea1\");
        } 
第1行从文件中读取第一行。然后在的内文中,您从文件的第二行读取第二行。第3行将文件的其余部分读入
jTextArea1
。 在while循环的下一次迭代中,由于已完全读取文件,因此
reader.readLine()
返回
null
。 要将文本加载到ѭ10中,请使用Phill和Bhushankumar建议的
read
方法。
JTextArea
不使用to11ѭ的第二个参数,因此可以安全地传递
null
。第二个参数通常用于存储到加载文件的URL来解析相对引用,例如ѭ15中的链接。     
        
textLine = reader.readLine();
被叫了两次... 固定:
try {
    String textLine;
    FileReader fr = new FileReader(\"ad.txt\");
    BufferedReader reader = new BufferedReader(fr);

    while((textLine=reader.readLine()) != null){
        // textLine = reader.readLine(); // Remove this line
        jTextArea1.read(reader, \"jTextArea1\");
    }
}
catch (IOException ioe) {
    System.err.println(ioe);
    System.exit(1);
}
    
        正确的是:
try {
    FileReader fr = new FileReader(\"tablica.txt\");
    BufferedReader reader = new BufferedReader(fr);

    do {
        l.read(reader, null);
    }

    while ((textLine=reader.readLine()) != null)
        ;

}

catch (IOException ioe) {
    System.err.println(ioe);
    System.exit(1);
}
    

要回复问题请先登录注册