如何使用Java从文件夹添加图像文件?

时间:2014-06-12 01:58:00

标签: java image swing file awt

我发现的最近的事情是:How do I create a Java string from the contents of a file? 我已经使用过这个,寻找换行符并使用while hasNext()循环,但我想知道是否有相应的图像文件?我想将文件夹中的图像添加到某个点或直到添加所有图像

1 个答案:

答案 0 :(得分:2)

要列出目录的内容,您可以从...开始

File[] contents = new File("/path/to/images").listFiles();

您现在只需要遍历列表以确定如何单独处理每个File ...

现在,您可以节省一些时间并提供FileFilter,这样您就可以先发制人地丢弃您可能不感兴趣的文件......

File[] contents = new File("path").listFiles(new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        String name = pathname.getName().toLowerCase();
        return name.endsWith(".png")
                || name.endsWith(".jpg")
                || name.endsWith(".jpeg")
                || name.endsWith(".gif")
                || name.endsWith(".bmp");
    }
});

获得图像文件列表后,需要迭代列表

for (File imageFile : contents) {
    // Deal with the file...
}

有关详细信息,请查看java.io.File

同样,您可以使用新的Files API ...

try {
    final Path master = new File("C:\\Users\\shane\\Dropbox\\MegaTokyo").toPath();
    Files.walkFileTree(master, new FileVisitor<Path>() {
        @Override
        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
            return dir.equals(master) ? FileVisitResult.CONTINUE : FileVisitResult.SKIP_SUBTREE;
        }

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            System.out.println(file);
            // Process the file result here
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
            return FileVisitResult.CONTINUE;
        }
    });
} catch (IOException exp) {
    exp.printStackTrace();
}