Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSwing中将文本文件读入jtextarea_Java_Swing_Jtextarea_Bufferedreader_Filereader - Fatal编程技术网

如何在JavaSwing中将文本文件读入jtextarea

如何在JavaSwing中将文本文件读入jtextarea,java,swing,jtextarea,bufferedreader,filereader,Java,Swing,Jtextarea,Bufferedreader,Filereader,这是我的密码: try { String textLine; FileReader fr = new FileReader("ad.txt"); BufferedReader reader = new BufferedReader(fr); while((textLine=reader.readLine()) != null) { textLine = reader.readLine(); jTextArea1.read(reade

这是我的密码:

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文件包含以下内容:

CONTIG0001长度=586 numreads=4 CGGGAATTACTCGCCTCCGCCGCCGGTTCCCCGACGAACGGATACTCCGTGAA GGCCGCGATCCGTCGGACGGAACGCCCTGGCCCGGGAACATACGTTCGGGCCCA AGTGTTATAGCCGGACCACTTGTCAGAGACATTCCAATTCCAATCCATCCAGAGATGTGAGGTTCGGAAGG TAAAAGCCGACAAGTGCGGTGAATTACTTTACGCACGAATGCGTCCGTATTA aagaaagtcgaaattcaagaaggccgacctgaagctggaggttcaaaaa TCTGCATCACCGGGTCACCGGTCGAATTCTGTACCGGCGCTGAACGTAATTCACCC TTTCTAAGGGGTCGCCGTCGTAAACCGTAAACAGCGGTAGCGGCCGCCCATCGGGCCG CCGGTACCAACCGTCGGTGCCGTGTTTCTTGCATCATGTCCGATCAGCGGTTCGTCC GCTTGTGCAAATCCTGCAATAGCTACGTGAAACGATCAGAGCTGTTGTAAATACTCTA TAAGCGAGATTCACATTCGCCGAAATAAGTTAATT

CONTIG0002长度=554 numreads=4 TGCGCCAACCGCGCTCTTCATAATGGGCACTGCCCCGATGGCCGACTCGGGCGGTTCG CCATGATCTTGCCTACGCAGAGAGACTCACCAAGTGATGCTCTCTT CAAGTCCTATTCTATCTTTAATGGAACCCGTAGGAACCCGGAACCCGTGTAGGAGA ACCGCACTTGAGGGGAGGGCGGGGTACGGTCCGGGACGTACGGGGTACCGGCGGGG 加格加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加加 AGCGGGAAATGGGGGACCGGCGAGAGGGGTTCGCTAAGTGGGGGAAATAGGGAAA GGTTGACCAGTGTTCCCCGCTCGTAACATGCCTCAGATAGCCATCCGCTGTACCT GGTCAGGGTCGCTGGCAACTTCGGCCGAGGGTGACCCGAAGGTGGTGACCCGAAGGGTCAGGTGTGA CACACCAACCGACACCGAGCGAGCAAGCGTAGCGCGGCGTGGCCGCGCGGCGGCG CTGAGGACTCG

但通过跳过前两行显示输出


原因是什么?

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);
}

您不需要while循环或readLine方法。只需调用
jtextArea1.read(读卡器,“jtextArea1”)

编辑:根据您的评论进行更新。如果要跳过所有以>开头的行,则需要手动读取文件,然后将每行附加到文本区域

比如:

String line;
while ((line = reader.readLine()) != null)
{
    if (!line.startsWith(">"))
    {
        jTextArea.append(line + "\n");
    }
}
正确答案是:

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);
}
使用:


您只需要以上两行就可以从文件中读取并将其放入JTextArea…

到那时,问题一定已经解决了,但对于为什么跳过前两行的问题仍然没有答案

创建
reader
,然后从文件中读取前两行,其余的行将加载到
jTextArea1

您的代码:

/* 1 */ while((textLine=reader.readLine())!=null){
/* 2 */     textLine = reader.readLine();
/* 3 */     jTextArea1.read(reader,"jTextArea1");
        } 
第1行从文件中读取第一行。然后在的正文中,当您从文件第2行读取第二行时。第3行将文件的其余部分读入
jTextArea1

在while循环的下一次迭代中,
reader.readLine()
返回
null
,因为文件已被完全读取


要在
JTextComponent
中加载文本,请使用和建议的方法


JTextArea
不使用
read
的第二个参数,因此可以安全地传递
null
。第二个参数通常用于存储到加载文件的URL以解析相对引用,例如
HTMLDocument中的链接

,感谢rly,但我想跳过以符号“>”开头的所有行。先生,我编写了以下代码:try{file file file=new file(“c:\\ad.txt”);FileReader fr=new FileReader(文件);BufferedReader reader=new BufferedReader(fr);字符串textLine;while((textLine=reader.readLine())!=null){if(!textLine.startsWith(“>”){jTextArea1.append(textLine+“\n”);}jTextArea1.read(reader,“jTextArea1”);}}catch(IOException ioe){System.err.println(ioe);System.exit(1);}也不需要
while
循环和
readLine()
处于其状态。此代码似乎不会将任何内容加载到
jTextArea
中。
/* 1 */ while((textLine=reader.readLine())!=null){
/* 2 */     textLine = reader.readLine();
/* 3 */     jTextArea1.read(reader,"jTextArea1");
        }