0

このコードを機能させることができません。読み取り元の .txt ファイルは次のとおりです: urls.txt

このコードの問題は、行がまったく追加されないことです。「リスト」から何かを取得しようとするたびに、IndexOutOfBoundsException が発生します。

コードは 30 秒ごとに実行されるため、lists.clear(); を呼び出す必要があります。方法。

注: 「リスト」は以前に定義されています。

    public static ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();

これは私のコードです:

                try {
                URL urls = new URL("https://dl.dropboxusercontent.com/u/22001728/server%20creator/urls.txt");
                BufferedReader br = new BufferedReader(new InputStreamReader(urls.openStream()));

                lists.clear();

                String line;
                ArrayList<String> list = new ArrayList<String>();

                lists.add(list);

                int y = 0, z = 0;

                while ((line = br.readLine()) != null) {
                    y++;
                    if(line.equalsIgnoreCase(">")) {
                        System.out.print("Received command: INSERT ");
                        lists.add(list);
                        list.clear();
                        z++;
                        System.out.print(" ;  Jumping to " + z + "\n");
                    } else {
                        System.out.println("Line: " + line + " added to lists[" + z + "].");
                        lists.get(z).add(line);
                    }
                }

                int selectedIndex = comboModel0.getIndexOf(comboModel0.getSelectedItem());
                comboModel0.removeAllElements();

                System.out.println("\n\n\n");

                System.out.println(lists.get(1).get(1));

                System.out.println("\n\n\n");

            } catch (IOException e) {
                System.out.println("Failed to download URLS data.");
            }
4

1 に答える 1

3

リストのコレクションにリストを追加してから、それをクリアしています。これにより、ローカル変数とコレクション内のリストがクリアされます。

lists.add(list);
list.clear();

コレクションに追加するには、そのリストのコピーを作成する必要があります。

lists.add(new ArrayList<String>(list));
于 2013-05-18T17:25:29.233 に答える