Java Swing 只将文件中的唯一行读入 JtextArea

Java Swing read only unique lines from file into 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 的解决方案。

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

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

您应该使用 .readLine() 逐行读取文件并将该行添加到 HashSet 对象,集只允许唯一元素。 阅读整个文件并将它们添加到集合中后,您只需将字符串添加到文本区域

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

中的值填充 textArea 之后