2011-01-31 16 views
0

私がする必要があるのは、ファイルを後ろ向きに読み込むことです。私ができることを望むのは、ファイルを逆方向​​に読み込み、値がGかヘックス47かどうかを確認し、次の値がNか16Kかどうかを確認し、次の値がPかどうかを確認することです。 。私は現在、ここでは...で読み込んで使用するバイナリファイルを後で読む

をバイナリIOを使用していますが、より良い私が何を意味するかが表示されます画像へのリンク..ですhttp://www.facebook.com/photo.php?pid=2189508&l=92393dfccb&id=1283154964

String s = Integer.toHexString(hexIn); 
    if(s.length() < 2){ 
    s = "0" + Integer.toHexString(hexIn); 
    } 

を確認するために、ヘックスは最後にゼロを見逃しません(私はこのサイトで見つけました:)

+0

あなたが上のレベルでやろうとしていることを言えば、助けになるでしょう... – thkala

+0

バッファを64kと読み返して返します – bestsss

+2

あなたは既にファイルを逆読みして回答を受け入れました:http://stackoverflow.com/questions/4841148/read-binary-file-backwards-using-javaもう一度同じ質問をして、時間を無駄にすることをやめる。または、少なくとも「明確な質問」をお願いします。あなたの質問はとても混乱しているので、ここのアドバイスはあなたの最後の投稿と同じです! – camickr

答えて

0

あなたが想像しているように、後方を読むことは普通のことではないので、何かをする必要がありますg奇妙な。

でも、あなたはになります。自分でインデックスをファイルに配置します。あなたがそれをしたら、最後に置いて、バイトを読んでから、それを(end-1)に置いて、バイトを読んで、そうするなら、成功するでしょう。

これは恐ろしく遅いので、できるだけ多くのものをバッファに読み込み、最後からバッファを逆順に読み込み、バッファを再充填します。

This tutorialは、JavaでのランダムアクセスI/Oについて説明しています。

0

RandomAccessFileは、ファイルを逆方向​​に読み取るのに最も簡単なクラスです。

1

逆方向にファイルを読み込んで文字列を検索するのではなく、文字列を逆順にして、転送中のファイルでそれを探すのはなぜですか?それはより簡単な解決策に見えるでしょうか?

関連する問題