2

ディレクトリ構造を比較するアプリケーションを書いています。最初に、ファイルに関する情報を取得するアプリケーションを作成しました。各ファイルまたはディレクトリに関する1行です。

これがメソッドを呼び出す私の解決策ですtoFile()

Static PrintWriter pw = new PrintWriter(new BufferedWriter( new FileWriter("DirStructure.dlis")), true);
String line; // info about file or directory
public void toFile(String line) {
    pw.println(line);
}

そしてもちろんpw.close()、最後に。

私の質問は、もっと早くできるかということです。最も速い方法は何ですか?

編集:「最速」の方法の意味は、ファイルへの最速の書き込みです

4

2 に答える 2

3

Sunには実際にこれに関するチュートリアルがあります。彼らによると、最大17倍の速度を得ることができます(最悪の場合から最良の場合まで)。

彼らは、バッファリング、直接バッファリング、OS、およびその他の多くの有用なトピックについて話します。
あなたが言ったように、あなたがたくさんのファイルと行を持っていることを考えると、私はアプローチとしてストリームの圧縮/解凍を提案しますが、全部を読んでください(私は経験から答えただけではありません)。

編集:
宿題であることを考えると、そのページのすべての概念の知識は確かにあなたの先生に感銘を与えるでしょう、それであなたはあなたが何をしているのか、そしてその理由を言ういくつかのコメントを追加し、そして代替案をリストするかもしれません。;)

編集2:
行に含まれているものを正確に確認しました。ファイルにその情報のみが含まれる場合は、キューにある次のファイルの行を非同期で作成することを検討してください。つまり、ディレクトリは複数のディレクトリ名である必要があり、適切に組み合わされている必要があります。ファイルに関する情報を取得するには、高速操作に関するリンクのこのセクションを参照してください。

于 2012-04-14T23:12:20.407 に答える
0

Peter Lawreyは次のように書い
ています。データを取得できる速度はほぼ確実に100倍遅くなるため、書き込みには問題ない可能性があります。
ですから、質問で示されている私の解決策は問題ないようです。

于 2012-05-24T14:11:44.380 に答える