gpt4 book ai didi

java - 如何在不知道文件扩展名的情况下实例化 java.io.File 对象?

转载 作者:行者123 更新时间:2023-11-30 06:21:30 33 4
gpt4 key购买 nike

我将图像的文件名存储在数据库中(user_id.extension,例如 14.png)。

假设,我需要检索一个文件并将其写入流。但是如何在不知道文件扩展名的情况下创建 java.io.File 对象(图像可以是 jpg、png 等)?现在在我的数据库中只有带有 .png 扩展名的图像,我这样做:

File file = new File(pathToAvatarFolder + File.separator + user.getId() + ".png");

有没有一个优雅的解决方案?我想到的只有暴力解决方案:

List<String> imageExtensions = new ArrayList<>();
imageExtensions.add(".png");
imageExtensions.add(".jpg");
imageExtensions.add(".jpeg");

File file;
for(int i = 0; i < imageExtensions.size(); i++) {
file = new File(pathToAvatarFolder + File.separator + user.getId() + imageExtensions.get(i));
if (file.exists()) {
break;
}

file = null;
}

需要明确的是,我需要使用不带扩展名的路径名来实例化 java.io.File 对象。

最佳答案

import java.nio.*;
import java.nio.file.*;

Files.probeContentType((new File("filename.ext")).toPath());

这将返回文件的类型。对于 png,它将是 image/png。

关于java - 如何在不知道文件扩展名的情况下实例化 java.io.File 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48059648/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com