0

これは私の最初の質問です。親切な方が私を助けてくれることを願っています。よろしくお願いします。

スレッドとレプリケートされたワーカー パラダイムを使用して Java プロジェクトを作成しようとしています。私がやりたいのは、タスクのワークプールを作成することです。ワーカーがしなければならないタスクは、指定されたファイル内の 2 つのインデックス間の単語数をカウントすることだけです。次のようなタスクを作成したい: (file,startIndex,finishIndex)。ファイルを開き、startIndex から finishIndex までの単語を読み取るために使用するファイル処理クラスを見つけるのに問題があります。また、チャンクサイズが与えられており、それを使用してタスクを分割することになっていることにも言及する必要があります。ChunkSize は、バイト数を表す int です

結論: startIndex から startIndex + chunkSize までファイルから読み取りたい。

4

1 に答える 1

0

RandomAccessFileクラスを探していると思います。ファイル内の特定の位置にスキップできる「seek」メソッドがあります。例:

int chunkSize = 64;
long startingIndex = 55;
byte[] bytesRead = new byte[chunkSize];

RandomAccessFile file = new RandomAccessFile("file.txt", "r");
file.seek(startingIndex);
file.read(bytesRead);
file.close();

これは、単語ではなくバイト数をシークすることに注意してください。ファイルを読む前に、ファイル内の単語がどこにあるかを知ることは不可能です。スペースを数えて 1 つ追加するという単純な方法は、この場合にうまく機能します。

于 2012-11-20T22:44:47.840 に答える