我想通过使用一些输入来对我的P2P系统进行一些测试:"join 8".8是节点号.对于我的系统,从stdin读取命令"join 8",但我不想为百次测试输入百次,所以我编写了一个测试函数来随机生成节点编号,然后调用"join"命令本身.所以我希望JAVA编写命令而不是我自己的输入到stdin.我怎样才能做到这一点?目标是:当我输入"test join 3"时,代码应该在1-255之间随机生成3个节点号,并为它们调用join命令.我的代码现在不能正常工作:
if (command[0].equals("test")) {
//test join
if (command[1].equals("join")) {
int nodenum = Integer.parseInt(command[2]);
Random rand = new Random();
Set<Integer> generated = new LinkedHashSet<Integer>();
while (generated.size() < nodenum) {
Integer next = rand.nextInt(255) + 1;
generated.add(next);
ProcessBuilder builder = new ProcessBuilder("java", "Test");
Process process = builder.start();
//stdIn=new BufferedReader(new InputStreamReader("join"));
OutputStream stdin = process.getOutputStream();
InputStream stdout = process.getInputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
writer.write("join "+next);
writer.flush();
writer.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)