Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JAVA运行定义数量的文件_Java_Java 8 - Fatal编程技术网

使用JAVA运行定义数量的文件

使用JAVA运行定义数量的文件,java,java-8,Java,Java 8,我有一个包含100个文件夹的目录。 我想从该目录中随机选择10个文件并进行处理 static File repertoire = new File("path"); static File[] files = repertoire.listFiles(); for (File file : files) { if (file.isDirectory()) { Runtime.getRuntime().exec("cmd.exe /c sta

我有一个包含100个文件夹的目录。 我想从该目录中随机选择10个文件并进行处理

static File repertoire = new File("path");
    static File[] files = repertoire.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            Runtime.getRuntime().exec("cmd.exe /c start "+ file.getAbsolutePath()+"\\scriptSh.sh");}
        }
    }
}
我希望我的代码只在我的目录下的10个文件上运行,而不是在所有文件上运行。 请提供任何帮助。

静态文件目录=新文件(“路径”);
static File repertoire = new File("path");
static File[] files = repertoire.listFiles();
List<File> directories = new ArrayList<>();

for (File file : files) {
    if (file.isDirectory()) {
        directories.add(file);
     }
}

Random rand = new Random();
for(int i=0;i<10;i++){
   File file randomElement = directories.get(rand.nextInt(directories.size()));
   Runtime.getRuntime().exec("cmd.exe /c start "+ file.getAbsolutePath()+"\\scriptSh.sh");
}
静态文件[]文件=repertoire.listFiles(); 列表目录=新的ArrayList(); 用于(文件:文件){ if(file.isDirectory()){ 目录。添加(文件); } } Random rand=新的Random();
对于(int i=0;iyq)来说,您的Q是令人困惑的。所以您想从主目录中的100个文件夹中随机选取10个文件?
List files=Arrays.stream(repertoire.listFiles()).filter(file->file.isDirectory()).collect(Collectors.toList());Collections.shuffle(files);files.stream().limit(10).forEach(文件->Runtime.getRuntime().exec(“cmd.exe/c start”+文件.getAbsolutePath()+“\\scriptSh.sh”));
在代码中放置
static
毫无意义。如果多个实例使用同一个random实例,则会出现性能问题。因此,您可以使用
ThreadLocalRandom
,它会为每个线程创建一个随机实例。确切地说,我不想多次运行同一个scrip。每个脚本都应该运行一次。它工作正常,但我每次从列表中删除运行的脚本,以便每次运行不同的脚本。