1

私は NIO クラスが初めてです。(おそらく) 非常に大きなテキスト ファイルとのパターン マッチングに取り組んでいます。これまでのところ、チャネルを byteBuffer にマッピングしてファイルからデータを読み取り、それを charBuffer に変換しています。私の質問は、charBuffer の MapMode が READ_WRITE に設定されている場合、処理中に charBuffer を直接変更する方法 (ala matcher.replaceAll()) はありますか? または、matcher.find() でループして、パターンの各インスタンスを手動で置き換える必要がありますか?

4

2 に答える 2

1

まず、ファイル全体を読み取って、検索と置換を行い、パフォーマンスが許容できるかどうかを確認します。そうでない場合は、一致するテキストを作成するのに十分な量のテキストを読み込んでから、テキストのその部分を置換してください。パターン/パフォーマンスによっては、代わりにカスタムパーサーを作成する必要がある場合があります。

于 2012-05-04T14:09:29.803 に答える