【问题标题】:How do you add image files from a folder with Java? [closed]如何使用 Java 从文件夹中添加图像文件? [关闭]
【发布时间】:2014-08-02 05:53:56
【问题描述】:

我找到的最接近的东西是:How do I create a Java string from the contents of a file? 我用过这个,寻找换行符并使用 while hasNext() 循环,但我想知道是否有图像文件的等价物?我想从一个文件夹中添加图像直到某个点或直到添加所有图像

【问题讨论】:

  • 是的,有办法。请提出一个更好的问题...
  • 你是什么意思“从文件中添加图像”?您的文件中是否有与磁盘上的图像相关的图像列表,或者您的意思是要列出图像目录??
  • 后者是正确的 Mad。我的意思是从一个文件夹,对不起。

标签: java image swing file awt


【解决方案1】:

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

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();
}

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 2022-08-04
    • 2016-03-18
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2019-05-16
    相关资源
    最近更新 更多