Java 多线程随机数生成并写入文件
下面是一个使用 Java 编写的示例代码,实现了两个线程分别从 1-35 和 1-12 的整数范围内抽取随机数,并将结果打印到 D 盘 A 文件夹下的 abc.txt 文档中。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
public class RandomNumberGenerator {
public static void main(String[] args) {
Thread thread1 = new Thread(new RandomNumberGeneratorThread(1, 35, 5));
Thread thread2 = new Thread(new RandomNumberGeneratorThread(1, 12, 2));
thread1.start();
thread2.start();
}
static class RandomNumberGeneratorThread implements Runnable {
private int min;
private int max;
private int count;
public RandomNumberGeneratorThread(int min, int max, int count) {
this.min = min;
this.max = max;
this.count = count;
}
@Override
public void run() {
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
int randomNumber = random.nextInt(max - min + 1) + min;
sb.append(randomNumber).append(' ');
}
String fileName = "D:\A\abc.txt";
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName, true))) {
writer.write(sb.toString());
writer.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在上面的代码中,我们定义了一个 RandomNumberGeneratorThread 类,该类实现了 Runnable 接口,表示可以在新线程中运行。构造方法中传入了抽取随机数的范围和个数。在 run 方法中,我们使用 Random 类生成随机数,并将随机数拼接到一个字符串中。然后,我们使用 BufferedWriter 将字符串写入到指定的文件中。注意,由于使用了 BufferedWriter,需要在使用完毕后调用 close 方法关闭文件资源。
在 main 方法中,我们创建了两个 RandomNumberGeneratorThread 线程,并分别传入了 1-35 的整数范围和抽取 5 个整数的个数,以及 1-12 的整数范围和抽取 2 个整数的个数。然后,调用 start 方法启动线程。
执行上述代码后,将在 D 盘 A 文件夹下生成一个名为 abc.txt 的文档,其中包含两行随机抽取的整数。
原文地址: https://www.cveoy.top/t/topic/o1Al 著作权归作者所有。请勿转载和采集!