私はJavaでプログラミングしています。特定のフォルダ内のすべてのファイルのサイズを定期的にカウントしたい。期間は一定ではなく、非常に短いです。私のコードは次のとおりです。
//get Index Size
index_byte_size = 0;
File index = new File(indexPath);
String[] files = index.list();
File f = null;
for(int i=0; i < files.length; i++) {
f = new File(index, files[i]);
index_byte_size += f.length();
}
index_byte_size
私が欲しいものです。indexPath
フォルダのパスです。
コードはループしています。そして、index_byte_size
ループごとに合計を出力します。私の知る限り、ファイルサイズは継続的に増加するはずです。ただし、得られる結果は次のようになります。
IndexSize(byte) Time(ms)
0 297
0 802
0 1293
0 1710
7769547 2952
7769547 4330
7769547 4431
7769547 4785
7769547 4901
7769547 5213
7769547 5279
7769547 5446
7769547 5660
7769547 5861
7769547 6155
24041054 8763
24041054 9203
24041054 10439
24041054 10820
24041054 11685
36708630 13662
36708630 14309
36708630 16065
36708630 16192
36708630 16374
36708630 16691
36708630 16899
...
ご覧のとおり、ファイルサイズは増加し、一定に保たれ、その後増加します。何が起こっているのかわかりません。オペレーティングシステムで何かが起こっていると思います。私のOSはWindows7です。
[バックグラウンド]
Luceneを使って実験を行い、そのインデックス作成能力、特にインデックスサイズとインデックス作成効率を確認したいと思います。
私はたくさんの小さなテキストファイルを持っています(それぞれ2-10Mサイズ)。そして、Luceneがそれぞれに1つずつインデックスを付けるのにかかる時間と、インデックスの大きさを確認したいと思います。だから私はこのプログラムを書きます。
インデックスが変更されたときに通知を受けたくありません(もちろんインデックスが変更されるため)。私は、彼らが非常に短い期間でどれくらいの期間、どれくらいの大きさであるかを知るために何をすべきかを知っています。
誰かが理由を知っていますか?そして、どうすればリアルタイムでサイズを正確に数えることができますか?