您好我正在开发一个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
。
答案 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之后