2009-06-25 17 views
3

私は任意のバイト配列(32バイトのモック・ウィルス・シグネチャ)を任意のファイルに書き込みます。ファイルにオフセットを指定して特定のファイルを上書きするコードが必要です。 私の特定の質問です:この特定のタスクを実行するために使用できるソースコード/ライブラリはありますか?Java:高度なファイル操作のソース/ライブラリはどこにありますか?

私はPythonファイル操作でもこの問題を抱えています。私は、行を殺すことができる関数のセットを探している/カット/コピー/貼り付けなど私の前提は、これらは非常に一般的なタスクであり、私はJava APIやGoogleの検索でそれを見つけることができませんでした。

RTFMは申し訳ありません。私はどんな情報にも触れていないし、今私はしばらく探している。

+0

ファイルのサイズはどれくらいですか? FileChannel(http://java.sun.com/javase/6/docs/api/java/nio/channels/FileChannel.html)とNIOの他の部分を参照してください。 –

答えて

4

標準のJava JDKでRandomAccessFileクラスのようなものを探していることがあります。これは、バイト配列だけでなく、いくつかのオフセットで読み書きをサポートします。

+2

うん、それは素晴らしいです。それはまさに私が欲しいものです。 – montooner

0

File/FileReader/FileWriter/BufferedReaderを調べましたか?ファイルの内容を取得し、好きなように操作したり、ファイル内のデータを検索したり、ファイルを上書きしたり、新規作成したり、既存のファイルに追加することができます。

これはわかりませんまさにあなたが求めているものですが、私はこれらのAPIをロギング、RTFエディタ、電子メールのテキストファイル作成などのために常に使用しています。

cut/copy/pastまでは、直接行うことはできませんが、ファイルの内容を出力し、その中のどの部分をコピーして貼り付けることができます。それを新しいファイルに追加するか、既存のファイルに追加します。

2

私が知る限り、Javaは、ファイルを直接操作するための主に低レベルの機能を備えています。ここで私はあなたが記述

  1. アクションを作ってみた最高のは、Swingの世界では標準装備されており、テキストのダウンDocumentオブジェクトを操作することになります。これらはメモリ内のデータに作用します。クラスjava.nio.channels.FileChannelには、ファイルに直接作用する同様のメソッドがあります。どちらも線の終わりを自動的に細かくはしませんが、java.iojava.nioの他のクラスは自動的に行いません。

  2. Apache Commonsには、希望のように見えるFlatfileというサンドボックスライブラリがあります。問題はまだコードがリリースされていないということです。あなたは、しかし、より多くのアイデアを得るためにそれに取り組んでいる人と話したいことがあります。私は図書館の一般的な点検をしなかった。

0

ファイルにバイト配列を書くことが一般的なタスクですが、一度だけ所与のファイルに32バイトのバイト配列を書くことだけでは、java.ioで見つけるしようとしている:)

ものではありません

開始するには、以下の方法とコメントがあなたに妥当と思われますか?私はここの誰かが、おそらく自分自身でさえ、すぐにそれを泡立てることができると賭ける。

public static void writeFauxVirusSignature(File file, byte[] bytes, long offset) { 
    //open file 
    //move to offset 
    //write bytes 
    //close file 
} 

質問:

  • 潜在的なターゲットファイルはどのくらいだろうか?
  • パフォーマンスが必要ですか?

java.nioライブラリを使用して必要になります

4

JavaのRandomAccessFileは、正確に何をしたいです、クリーンなコードを読みやすいでは、Apache CommonsのLIB年代を使用するので、私は聞いてますが、大きなファイルは、パフォーマンスに敏感な環境の中で書いています。

このファイルには、seek(long)のような必要な場所に移動することができます。同時に読み書きも可能です。

+0

RandomAccessFileは基本的に(個人的にはFileChannelを使用します)、ファイルの途中でデータを削除したり挿入したりするために必要な作業が多数あります。 – erickson

+0

真実ですが、それは始まりです... – jjnguy

関連する問題