私は、サイズが不明だが、mbからgbの範囲にあり、その内容をランダムに埋め込むことができるファイルを効率的に作成する方法を探しています。私は、最後に200バイトを書き込んで最後の200バイトを書き込んで、中央に移動して書き込むかもしれません。 RandomAccessFile
はこれを行うのに効率的ですか、またはこの種の仕事に適した代替手段がありますか?大きなファイルへのJavaアクセス
5
A
答えて
10
はい、RandomAccessFile
を使用してください。それはそのためのものです。あなたははFileChannel
を潜在的に使うかもしれませんが、私はRandomAccessFile
の方が先です - それはもっと簡単だろう。
最後の部分を書き込んだ後、ファイルの「中央に挿入する」ことができないことに注意してください。それをサポートするファイルシステムはわかりません。基本的に最後のセクションを書く前に、完全なサイズを知る必要があります。代わりに、最後まで最後のビットを覚えて、順番に書き込むことができます。
私たちにあなたが何をする必要があるかについてのより多くの情報を与えることができます(そしてあなたがサイズに関する情報を持っている場合)。
EDIT:この後
import java.io.*;
public class Test
{
// Just for the sake of a simple test program!
public static void main(String[] args) throws Exception
{
RandomAccessFile file = new RandomAccessFile("file.dat", "rw");
file.seek(100);
file.write(0);
file.close();
}
}
終了した、file.dat
は101バイトの長さになります。特定のサイズのファイルを作成するには、エンド過去seek()
、その後はデータを書き込むことができます。
EDITを(なお、通常、あなたは最終的に/試すなどを使用したい):コメントで述べたcoobirdとおり、setLength()
も、ファイルを拡張します - しかし、あなたは現在未満の長さを与える場合、それはまた、ファイルが切り捨てられますサイズ。基本的にトレントデータを書くことについてのあなたのコメントを考えれば、私はシークして書くことがまさにあなたが望む行動だと思っています。あなたがチャンクを受け取ったら、ちょうど正しい場所を探してそれを書き出し、必要なときにファイルを拡張します。私はのRandomAccessFileを推測
1
は、この問題の罰金です
2
のRandomAccessFileはそれを
関連する問題
- 1. C#の大きなファイルへの「ランダム」アクセス
- 2. Apacheで大きなファイルへのアクセスを制御する
- 3. IIS express、大きなビデオへのアクセス
- 4. Pythonのファイルへの大きなバイナリコード
- 5. DBへの大きなCsvファイル
- 6. Cで大きなファイルにアクセス
- 7. Javaでのファイルの内容へのアクセス
- 8. ibm bluemix Javaランタイムのファイルへのアクセス
- 9. JSファイルのJavaクラスプロパティへのアクセス
- 10. EclipseソースバンドルからのJavaファイルへのアクセス
- 11. Javaで大きなCSVファイルを読む
- 12. 非常に大きなXMLファイルの解析とJavaオブジェクトへのマーシャリング
- 13. jsonファイルへのエリクシルスレッドセーフなアクセス?
- 14. 大きなC/C++プロジェクトの既存のフィールドへのアクセス
- 15. ファイル名のないファイルへのアクセス
- 16. へのアクセス、ファイル
- 17. 大きなファイル
- 18. 異なるクリティカルセクションへのJava同期アクセス
- 19. Java - セキュアなHTTPSサードパーティAPIへのアクセス
- 20. VBAアクセスPS1ファイルへの書き込み
- 21. ファイルへのアクセスができません
- 22. Pythonの大きなリストの最終値への効率的なアクセス
- 23. 大きなリポジトリからファイルへのキーワードの一致
- 24. APIゲートウェイS3への大きなファイルの取得/埋め込み
- 25. ファイルへのアクセスandroid
- 26. resxファイルへのアクセス
- 27. Javaのプライベートフィールドへのアクセス
- 28. javaのdllメソッドへのアクセス
- 29. C++のJava byte []へのアクセス
- 30. ドメイン名のないHostgatorファイルへのアクセス
反復と書くよりも、他のプレフィックスサイズのファイルを作成する方法はありますを行う必要があり、すべてゼロのまたは1つの、それを埋めるために? –
これを反映するための編集。 –
ありがとう、ファイルにランダムな部分を書き込む理由は、私はtorrentクライアントを実装していて、ファイル内のランダムな場所にピースが届くのですが、ファイル全体のサイズを手前に知っています。 –