質問: new Campany();** } for (Campany ca : name) { ca.showProfile(); System.out.println(); } br.close(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("コマンドライン引数が設定されていません"); } catch (FileNotFoundException e) { System.out.println("ファイルが見つかりません!!"); } catch (IllegalArgumentException e) { System.out.println("年月日の値が不正です"); } catch (IOException e) { System.out.println(e); } } }
回答: 「会社のデータを書いたカードを作りファイリングする」というイメージで見てみてください。 まずデータを作るカードを用意し、データを書き込みます。書き込み終わったらファイルに入れ、**次の会社のデータを書き込むための新しいカードを用意します。** この太字部分が問題のコードの動作に相当します。「中身を初期化」しているわけではなく、前のものはリストに入れて用済みなので、新しい空っぽのインスタンスを用意したというだけの話です。