• ベストアンサー

テキストファイルの読込み

鈴木一郎 19 tokyo 伊藤次郎 20 kumamoto 鈴木一郎 11 osaka 佐藤花子 21 kyoto テキストファイルから上のように書き込まれている(データ数は変わる)データを「name」「age」「address」の変数を持った クラス「SortList」型のリストに格納したいのですが、どのようにすればよいのでしょうか 以下のようにテキストファイルから取得した「name」「age」「address」をセットしていく感じにしたいのです ArrayList<SortList> slist = new ArrayList<SortList>();  SortList setdata = new SortList();    setdata.setName(name);  setdata.setAge(age);  setdata.setAddress(address);  slist.add(setdata);

質問者が選んだベストアンサー

  • ベストアンサー
  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

// ファイルの読み込み BufferedReader bfr = new BufferedReader(new FileReader("text.txt")); String str; String[] strRow; ArrayList<SortList> slist = new ArrayList<SortList>(); SortList setdata = new SortList(); // 一行ずつ読み込む(EOFとなったら終了) while((str = bfr.readLine()) != null){  // デリミタ(質問者の場合は半角スペース?)でデータを分割 strRow = str.split(" ");  // データをセット  setdata.setName(strRow[0]);  setdata.setAge(strRow[1]);  setdata.setAddress(strRow[2]);  // Listにセット  slist.add(setdata);  } ※ 当然ですがテキストファイルの「name」「age」「address」のデータに空白スペースが入るとうまく動作しません。

taroyamu
質問者

お礼

回答ありがとうございます おかげでうまくいきました。

その他の回答 (1)

  • say2005
  • ベストアンサー率36% (18/50)
回答No.1

このテキストファイルは実際には 鈴木一郎▲19▲tokyo(改行) 伊藤次郎▲20▲kumamoto(改行) 鈴木一郎▲11▲osaka(改行) 佐藤花子▲21▲kyoto(改行) となっています StringTokenizer をつかって分割しましょう。

taroyamu
質問者

お礼

回答ありがとうございます。 参考になりました。

関連するQ&A