- PR -

ファイルを最終行から読み込む

1
投稿者投稿内容
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2007-01-08 14:37
件名の通りなのですが通常ファイルの読み込みは先頭行から始めると思うのですが
最終行に欲しい情報があるため最終行からファイルを読み込みたいと思います。
なにか方策はございますでしょうか?
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-01-08 14:41
こんにちは
cat コマンドの反対の tacコマンドというのがありますが、これのソースを見てみたらいいのでは?

ちょっと探したらあったので、参考までに
http://www.koders.com/c/fidB677E65A4C2ACCC0DA97B0A3CA7E1B66FEFA5B53.aspx

[ メッセージ編集済み 編集者: 末記人 編集日時 2007-01-08 14:42 ]
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2007-01-08 17:17
「java.io.RandomAccessFile」クラスを使うくらいしかないかと。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html

というか「java.io.*」パッケージは一通り調べたのでしょうかね・・・。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-09 09:44
行数がそれほど多くなければ、java.util.Stackに全行取り込んじゃうのはどう?
最終行だけ欲しいのであれば、冗長になっちゃうけどね。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-09 10:32
[追記]
たぶん関数化すると思うけど、Stackにする場合、戻り値としてStackそのものを返すのではなく、java.util.Iteratorを返すようにすると、インターフェースの変更なしに実装をすり替えることができるよ。
#たとえば、Stackではパフォーマンスが出ないので、RandomAccessFileしちゃおうとか。

JDK5なら、java.util.Iterableを返すようにすれば、拡張for文で使えるようになるよ。

でも、最終行だけ欲しいのであれば、ますます冗長になっちゃうけどね。
1

スキルアップ/キャリアアップ(JOB@IT)