Comment lire un fichier texte dans jtextarea en Java Swing
Voici mon code:
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);
}
Et mon .txt fichier contient les éléments suivants:
contig00001 longueur=586 numreads=4
CGGGAAATTATCcGCGCCTTCACCGCCGCCGGttccaccgacgaacggatactgcgtgaa
ggCCGCGATCCCGTCggaCGGAAAaCGCCcTGgcccgggaacataccgttcgggccgcca
AGTGTTATAGCCGGACCACTTGTCAGAACATTtccaatccgaagatgtgagttcggaagg
TAAAAGCCCGACAAGTTGCGCGgTGAATTTACctttaccgcacgatatgcgtccgtatta
AaGAAAaGTTCGAAATTATCAGTAAGGCCGACctgaaagctgaccgggagttcaacaaaa
TCTGCATCACCcGGgTCACGGTCGAAATTGCTgtacgcggcgctgaacgtaaattcaccc
TTTcTAAGGGTGTCGCcGTCGTAAACCGTAAacaagccggtagcgccgcccatcgggccg
CCGGTACCAACCGTCGGTGCCGTGTTTCTtGCatcattgtccgatcgagcgttctcgtcc
GCTTGTGCAAaTCCTGCAaTAGCTAACGTGAAaacgatcagagctgttgtaaatactcta
TAAGCGAGATTCATCACATTCCTCcGCCGAAAtaaaaagttaatttcontig00002 longueur=554 numreads=4
TGCGCCAaCCGCGCTCTtCATAAaTGGGCACTgctcccgatggccgactcgggcggttcg
CCATGAGATCTTTGCCtACCcAGgAaCtCACcaccaagtctgattgctgtgtgttttctt
CAAGTCCCTATTTCTATTCtCTTtAATGGAACccgtaggaaacccgtgtaggacgcggga
aCCGCACTTgAAGGGGGAGGCGCGGGGTACCGgtccgggaacgtacgggtaccggcgggg
gAGGGGAGGGGGACCgCTCCGGGAAGGCCAGGggacggattggggaagggcgggtaccga
AGCGGGgAAaTGGGggAaCcGGCGAGAGGGTTcctcgctaagtgggggaaataggggaaa
GGTTGACCAGTGGTtCCCcGCTCTCGTAACATgcctcagatagcgccatccgctgtacct
GGtcaggtcGctggcaacttcggccgagcaggtgaacccgaaaggtgagggtcagtgtga
cacaccaaccgaacaccgacgaggcaagcgtaggagccggcgtggccgcgcccggcggcg
ctgaggactcctcg
Mais montre la sortie en sautant les deux premières lignes.
Quelle est la raison?
OriginalL'auteur jack1 | 2011-06-15
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de la boucle while, ou la méthode readLine. Appelez simplement
jtextArea1.read(reader, "jTextArea1")
Modifier: mise à jour à la suite de votre commentaire. Si vous souhaitez ignorer toutes les lignes commençant par >, vous aurez besoin de lire le fichier manuellement, puis ajoutez chaque ligne de votre textArea.
Donc quelque chose comme:
J'ai mis à jour ma réponse à la suite de votre commentaire.
merci monsieur,j'ai écrit du code suivant: try { file Fichier = new File("c:\\ad.txt"); FileReader fr = new FileReader(fichier); BufferedReader reader = new BufferedReader(fr); String textLine; while((textLine=reader.readLine())!=null){ if(!textLine.startsWith(">")) { jTextArea1.append(textLine + "\n"); } jTextArea1.lecture(lecteur,"jTextArea1"); } } catch (IOException ioe) { System.err.println(oie); le Système.exit(1); }
OriginalL'auteur
Utilisation:
Vous avez besoin seulement les deux lignes ci-dessus pour lire un fichier et de le mettre en JTextArea...
OriginalL'auteur Bhushankumar Lilapara
Le problème a été résolu par le temps, mais il n'y a toujours pas de réponse à la question pourquoi les deux premières lignes sont ignorées.
Vous créez
reader
et ensuite de lire les deux premières lignes du fichier, les lignes restantes sont chargés dansjTextArea1
.Votre code:
Ligne 1 lit la première ligne du fichier. Ensuite, dans le corps pendant que vous lisez le deuxième ligne du fichier à la ligne 2. Ligne 3 lit le reste du fichier dans
jTextArea1
.Sur la prochaine itération de la boucle while,
reader.readLine()
retournenull
depuis le fichier est lu complètement.Pour charger du texte dans un
JTextComponent
utiliser seslire
méthode suggérée par Phill et Bhushankumar.Le deuxième paramètre à
read
n'est pas utilisé parJTextArea
, de sorte qu'il est sûr de passernull
. Ce second paramètre est généralement utilisé pour stocker l'URL du fichier chargé de résoudre les références relatives, par exemple les liens dans unHTMLDocument
.OriginalL'auteur Alexey Ivanov
textLine = reader.readLine();
est appelé deux fois...Fixe:
while
boucle etreadLine()
dans son état sont également pas nécessaire.OriginalL'auteur Talha Ahmed Khan
Correctement est:
jTextArea
.OriginalL'auteur giacomo