如何在Java应用程序中显示任何文件格式的图像?

时间:2013-02-02 11:58:41

标签: java swing file-extension

我的代码只接受.bmp格式的图片

String format="";
if(pic_sel_file.toLowerCase().endsWith(".bmp"))
    format="BMP";

如何更改此代码以便它可以接受任何文件格式的图像(.jpg,.tif等)?

3 个答案:

答案 0 :(得分:4)

为避免使用多个 if-then-else 语句,您可以使用正则表达式在文件扩展名类型列表上进行匹配。 endsWith不接受正则表达式,所以你可以这样做:

Matcher m = Pattern.compile("(?i).*\\.(bmp|gif|jpg|tif)$").matcher(pic_sel_file);
if (m.matches()) {
   format = m.group(1).toUpperCase();
}
  • (?i)忽略案例

  • \\.转义后的点字符

  • (bmp|...图片类型

  • $行尾

答案 1 :(得分:1)

如果你想避免使用regexp,你可以使用一个集合并循环它:

List<String> allowedFileEndings = Arrays.asList("bmp", "png", "gif"); //or array
for (String allowedFileEndingsItem : allowedFileEndings) {
    if(pic_sel_file.toLowerCase().endsWith(allowedFileEndingsItem)) // or "." + allowedFileEndingsItem
    {
        format = allowedFileEndingsItem; // uppercase if you want
        break;
    }
}

我甚至会考虑使用enum作为文件格式,这可以使格式处理的生活更轻松。

答案 2 :(得分:0)