Java Swing只读取从文件到JtextArea的唯一行

时间:2017-12-12 10:49:31

标签: java swing bufferedreader filereader jtextarea

您好我正在开发一个swing应用程序,它从文本文件中读取内容并将它们添加到JTextArea。 我能够使用textarea.read()方法

读取文件内容

但问题是文本文件包含许多重复项,这些重复项是不必要的,需要丢弃。

以下是阅读代码:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

BufferedReader reader = new BufferedReader(new FileReader(new File("D:/abc.txt")));          
jTextArea1.read(reader, "D:/abc.txt");

}

我看到有人建议使用LinkedHashSet,但我不知道如何在这种情况下使用它。

我需要一个解决方案,只能读取文本文件中的唯一行并将其放入jTextArea

3 个答案:

答案 0 :(得分:2)

我需要一个解决方案,只能读取文本文件中的唯一行并将其放入jTextArea。 - 我认为更好的解决方案是读取输入文件的所有行,而不是只有那些独特的。它会更容易。您可以创建一个while循环来读取输入文件的每一行,将此行分配给String变量,并将此行添加到此循环外部声明的LinkedHashSet<String> yourSet。您可以使用方法yourSet将这些行(字符串)添加到yourSet.add(String yourString)。之后,您可以迭代您的集合并将每个String行发送到yourJTextArea

for(String s : yourSet) {
    yourJTextArea.append(s + "\n" );
}

答案 1 :(得分:0)

您应该使用.readLine()逐行读取文件并将该行添加到HashSet对象,设置只允许使用唯一元素。 一旦读完整个文件并将它们添加到集合中,您就可以将字符串添加到textarea

答案 2 :(得分:0)

设置是非常好的解决方案。在此上下文中,从新行读取文件in.nextLine()以String str = new String(value)存储值,然后在set.add(str)中存储值 在使用Set

中的值填充textArea之后