- 締切済み
ファイル読み込みと書き込み
JAVA初心者です。 以下のscore.txtというファイルを読み込んで、result.txtというファイルに科目合計と合計の降順にソートして出力したいと思っているんですが、どう記述していいのか全然わかりません。どなたかソースを教えて下さい。(※人数や科目が増えた時に修正しないようにArrayListを使用) (score.txt) 名前,国語,数学,社会,理科,英語 山田一朗80,80,78,60,75 山田次郎40,12,50,37,89 山田三郎60,38,45,68,40 山田四郎85,95,65,57,58 山田五郎90,95,55,45,72 ↓↓↓↓↓↓↓↓↓↓↓↓ (result.txt) 順位 名前 国語 数学 社会 理科 英語 合計 1 山田一郎 80 80 78 60 75 373 2 山田四郎 85 95 65 57 58 360 3 山田五郎 90 95 55 45 72 357 4 山田三郎 60 38 45 68 40 251 5 山田次郎 40 12 50 37 89 228 科目合計 355 320 293 267 334 1569 ------------------------------------------------------------- import java.io.*; class Test { public static void main(String[] args){ File score1 = new File("score.txt"); // ファイル読み込み BufferedReader br = new BufferedReader(new FileReader(score1)); // 最終行まで読み込む while (br.ready()) { String line = br.readLine(); までは何となくわかったのですが・・・・。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ngsvx
- ベストアンサー率49% (157/315)
「データをそのまま加工せず別ファイルに書き出す」が出来たということなので 既に解決しているかもしれませんが、 ファイルの終端(最終行)に達したかどうかの判定は、 while (br.ready()) { ではありませんよ。
- kscKane
- ベストアンサー率62% (18/29)
ArrayListに関しては以下を参考にしてください。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/ArrayList.html http://www.tohoho-web.com/java/collection.htm 文字列分割は、 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#split(java.lang.String) または http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/StringTokenizer.html http://takeoba.cool.ne.jp/moreJava/token.htm あたりが参考になるでしょう。 以上を参考にして、頑張ってください^^
- kaiza00
- ベストアンサー率100% (2/2)
私も前回答された方と同じ意見なのですが、 何ができるのかを明確にしたほうが良いと思います。 (大学の授業か何かの課題であれば、回答を知りたいかもしれませんが、自力でできるところは自力でときましょう。) 全くできないのであれば、 まず、ファイルを読み込んで書き込むという処理から やると良いと思います。 (ちょっとえらそうに書いてしまって申し訳ない。)
- kscKane
- ベストアンサー率62% (18/29)
まずどんなあたりまでなら自力で書けますか? ・データをそのまま加工せず、別ファイルに書き出す。 ・データを一行丸ごとArrayListにいったん入れて、そのまま別ファイルに出せる。 ・一行分のデータをカンマで区切って取得することが出来る。 ・カンマで区切って取得したデータをArrayListに入れて、それをさらに全データを格納するArrayListに入れることが出来る。 ・個人の合計点を出せる。 ・科目の合計点を出せる。 ・個人の合計点でソートが出来る。 ・科目の合計点でソートが出来る。 ・ソート結果を表示できる。 こんな順序で考えていけば、どのあたりで分からないかが絞り込めそうです。
お礼
返信遅れて申し訳ございません。 何とか自力でデータをそのまま加工せず、別ファイルに書き出す、というのは出来ましたが以下の・・・ ・データを一行丸ごとArrayListにいったん入れて、そのまま別ファイルに出せる。 ・カンマで区切って取得したデータをArrayListに入れて、それをさらに全データを格納するArrayListに入れることが出来る。 ・個人の合計点を出せる。 ・科目の合計点を出せる。 ・個人の合計点でソートが出来る。 ・科目の合計点でソートが出来る。 ・ソート結果を表示できる。 がわかりません・・・。わからない事ばかりで申し訳ありませんm(_ _)m