java - 在 Java 中创建包含随机字节的 2GB 文件的最快方法是什么?

标签 java random byte bit

我想要一种在 Java 中生成包含随机位的文件的方法。什么将最快创建随机文件?我想创建包含随机位的任何指定大小的文件。我希望能够在几分钟内生成一个 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 甚至可能不到一分钟。

谢谢。

最佳答案

如果您想一次生成所有随机位,而不是循环,请查看 java.util.Random method nextBytes(byte[])它用随机字节填充指定的字节数组。创建一个恰好足以容纳 2GiB 数据的字节数组,您可以一次性生成整个随机位源。

关于java - 在 Java 中创建包含随机字节的 2GB 文件的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907071/

相关文章:

java - Java 中的 SolidWorks 亿图查看器

java - spring boot xa事务数据源和jms

python - 随机几乎是随机的吗?

c# - 修改数组后将字节数组转换为 C# 中的图像

java - byte[] byteArray = anotherByteArray 的作用是什么?

android - 字节数组 -> 字符串 -> 字节数组

java - 如何创建一个逐步返回输出的网络脚本?

java - firebase如何获得 child 的 child ?

php - 如何在 PHP 中调用随机函数

python - numpy.random 与 numpy.random.Generate 之间有什么区别