使用流将文件夹中的图像添加到arraylist

时间:2018-10-17 18:40:35

标签: java arrays arraylist stream java-stream

我正在尝试从文件夹路径中作为参数传递的文件夹中读取图像,我试图使用流API将它们添加到arraylist中,但是我不知道应该使用哪个变量在forEach()中添加到我的数组列表中

    public void downsampling(String inputPath, String outputPath) {
    ArrayList<BufferedImage> inputSequence = new ArrayList<BufferedImage>();

    try (Stream<Path> paths = Files.walk(Paths.get(inputPath))) {
        paths
                .forEach(inputSequence.add(XXX));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

XXX应该替换为什么?非常感谢

1 个答案:

答案 0 :(得分:0)

代码是不完整的,因为即时消息还应该进行下采样,而我刚刚完成了输入,当我评论“有效”时,我的意思是@Eran的注释帮助我正确地引用了流式传输文件的变量,这是到目前为止可以正常使用的输入代码,无需对我投反对票...

    public void downsampling(String inputPath, String outputPath) {
    ArrayList<BufferedImage> inputSequence = new ArrayList<BufferedImage>();

    try (Stream<Path> paths = Files.walk(Paths.get(inputPath))) {
        paths
                .forEach(x -> {
                    try {
                        inputSequence.add(ImageIO.read((InputStream) x));
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                });
    } catch (IOException e) {
        e.printStackTrace();
    }
}