如何在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");
}