12/17 ファイル入出力,ネットワークプログラミング


メールでよせられた質問とその回答

Q.
僕は、テキストファイルに各列10このDataがコンマによって分けてあるDouble のデータ6列をどうにかしてDataというArrayに入れたいのですが、どうしたら いいのか分かりません。
BufferedReader br = new BufferedReader(new FileReader("data.txt"))
を使って、どのようにArray、Data(1)からData(60)まであらかじめデータ総数 が分からず、データが終わったら終わるというようなループなど存在するので しょうか?
A.
  String s=br.readLine();
として,一行読み込んでから,
      String[] cols=s.split(",");
のように,カンマを区切り記号として分解した上で,Double.parseDouble を 使って,doubleに変換する方法が自然でしょう.なお,StreamTokenizer を使う方法も考えられます.
Q.
「要らないイベントに対応するメソッドも中身は空で書いておく必要がある」 のはなぜですか?アダプタクラスと関係あるように思えますが、よくわかりま せん。
A.
イベントを受け取るイベントリスナーは,イベントの種類に対応するインタ フェース(interface)を実装(implement)したものと定義されていますが,Java の言語仕様で,インタフェース(interface)を実装(implement)する場合は,す べてのメソッドを定義しなくていはいけないと決まっています.継承では,親 クラスで定義しておいたメソッドは子クラスでは定義する必要はありませんが, この点が異なっています.

もっともこの点が不便なので,それぞれのイベントリスナーには対応するメ ソッドをすべて定義(ただし中身は空)したアダプタクラスが用意されています. たとえば,java.awt.event.MouseListener に対応して java.awt.event.MouseAdaptorが定義されています.このクラスの子クラスと して定義すると,関係のないイベントに関するメソッドは再定義する必要はあ りません.


最終課題について

1月19日(日) 21:00までに,好きな題材を選んで Java 言語でプログラムを作 成し,そのプログラムの説明をする HTML 文書を作成しなさい..その上で, 最終回の1月21日(火)に,教卓上のNCを使って,発表(デモンストレーションと プログラムの説明)をしてもらい(提出人数によっては全員ではなくこちらの指 定した人だけになると思います),それで評価します.

今日の課題

report1217@tanaka.ecc.u-tokyo.ac.jp 宛に「最終課題でどんなプログラムを 作りたいか(後で変更をしても全然問題ない).そのためにはどのようなことを 勉強したいか(講義でやらなかった点など)」を200文字以上書いて,メールを 出すこと.
次に進む