在 java 中将多个图像写入输出流

write multiple images to outputstream in java

我在eclipse 的resources 文件夹下有一个名为images 的文件夹。 我在图像文件夹中有多个图像。 我想通过调用网络服务在我的浏览器中显示所有图像。 我尝试了以下 code.I 我只能检索一个 image.I 想要多个 images.How 我可以这样做吗?

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("images/").getPath());

            final String[] EXTENSIONS = new String[]{
                    "png","jpg"// and other formats you need
            };
            // filter to identify images based on their extensions
            final FilenameFilter IMAGE_FILTER = new FilenameFilter() 
            {

                @Override
                public boolean accept(final File dir, final String name) {
                    for (final String ext : EXTENSIONS) {
                        if (name.endsWith("." + ext)) {
                            return (true);
                        }
                    }
                    return (false);
                }
            };
            if (file.isDirectory()) 
            {   
                 //list of files I get
                for (final File fi : file.listFiles(IMAGE_FILTER)) 
                {
                    OutputStream out =null;
                    OutputStream out1 =null;
                    BufferedImage bi =null;
                    try 
                    {
                        System.out.println("file" +fi);
                        //I get different files from images folder and add that to bufferedImage.
                        bi= ImageIO.read(fi);

                        response.setContentType("image/jpeg");
                        out= response.getOutputStream();
                        ImageIO.write(bi, "png", out);
                        ImageIO.write(bi, "jpg", out);
                        out.close();
                    }
                    catch (final IOException e) 
                    {
                        // handle errors here
                        e.printStackTrace();
                    }
                }
            }

资源不是文件。无法保证它们甚至会存在于文件系统中,只能存在于 JAR 或 WAR 文件中。所以使用 File 方法是行不通的。

在任何情况下,仅将图像流序列化到浏览器也是行不通的。您应该生成一个 HTML 页面,其中包含 <img> 元素,带有图像的 URL,并组织这些 URL 是可下载的。可能一开始就不适合使用资源机制。