5

Javaでランダムビットを含むファイルを生成する方法が必要です。ランダムファイルを最速で作成するものは何ですか?ランダムビットを含む任意のサイズのファイルを作成したい。ほんの数分(可能であれば1分未満)で2GBのファイルを生成できるようにしたいと思います。私が現在使用している手法は、2GBを実行するのに数時間かかります。

...
private static Random r = new Random();

private static int rand(int lo, int hi) {
    int n = hi - lo + 1;
    int i = r.nextInt() % n;
    if (i < 0) {
        i = -i;
    }
    return lo + i;
}
...
fos = new FileOutputStream(hdFiller);
for(long i = 0; i < maxFileSize; i++) {
    int idx = rand(0,32);
    fos.write(idx);
}
fos.close();
...

これをより速く、おそらく2GBの場合は1分未満で行う方法が必要です。

ありがとう。

4

2 に答える 2

6

ループするのではなく、ランダムビットを一度に生成する場合は、指定されたバイト配列をランダムバイトで埋めるjava.util.RandomメソッドnextBytes(byte [])を確認してください。2GiBのデータに十分な大きさのバイト配列を作成すると、ランダムビットソース全体を一度に生成できます。

于 2012-08-10T18:24:18.910 に答える
4

FileOutputStreamをBufferedOutputStreamでラップしてみてください。

于 2012-08-10T18:21:12.987 に答える