从ArrayList追加多次会导致一次打印多个值?

时间:2017-10-06 19:37:55

标签: java arrays eclipse arraylist append

我遇到了一个我不确定如何修复的问题。我正在处理一个字符创建者,它写入.txt文件并从同一个.txt文件中读取。我可以在第一次尝试时将.txt文件中的每一行附加到JTextArea,但是当我返回主菜单,然后返回到视图选项卡时,它会显示前两个值而不是第一个值。每次返回都会增加另一个值。有关如何修复的任何想法?如果这是一个非常愚蠢的问题,我道歉。

viewInfo.addActionListener (new ActionListener ()
    {
        public void actionPerformed (ActionEvent e) 
        {

            i3 = i3 + 1;    

            try { BufferedReader br = new BufferedReader(new FileReader("charCreator.txt"));

                while ((name1 [i3] = br.readLine()) != null) {

                    if (!list.contains(name1 [i3])){  

                        list.add (name1 [i3]);

                    }

                }

                br.close ();                  

            } catch (IOException e1) {
                e1.printStackTrace();
            }

            String infoArray [] = list.toArray (new String [500]);

            viewArea.append (infoArray [i3]);
            viewArea.append ("\n");

        } 
    }
    );

我对自己的编码技巧并不完全有信心,所以总是赞赏有建设性的批评。大多数变量都是全局的

1 个答案:

答案 0 :(得分:0)

您可能必须确保在输入方法时不要保留列表。类似的东西:

list.clear()

另一种方法是将列表声明移动到您的方法中,这样您就知道它是新的。方法结束后,看起来你不需要它。