先定个资源类型的枚举(这一步主要是为了规范以后的使用,也可以不定)
import lombok.Getter;
/**
* 资源的内容类型枚举
*
* @author gcp
*/
@Getter
public enum ContentTypeEnum {
image("image", "图片"), audio("audio", "音频"), video("video", "视频");
private final String contentType;
private final String desc;
ContentTypeEnum(String contentType, String desc) {
this.contentType = contentType;
this.desc = desc;
}
}
下面的具体的实现方法,主要使用到MimetypesFileTypeMap类中的getContentType()方法
import java.util.List;
import javax.activation.MimetypesFileTypeMap;
import com.google.common.collect.Lists;
/**
* 资源路径工具类
*
* @author gcp
*/
public class UrlUtil {
/**
* 获取对应资源的内容类型的资源文件路径
*
* @param urls 资源文件路径(多路径时以逗号分隔)
* @param contentType 资源的内容类型
* @return
*/
public static List<String> getUrlByContentType(String urls, String contentType) {
String[] url = urls.split("\\,");
List<String> fileUrl = Lists.newArrayList();
for (String s : url) {
String fileContentType = new MimetypesFileTypeMap().getContentType(s);
if (fileContentType.contains(contentType)) {
fileUrl.add(s);
}
}
return fileUrl;
}
}
具体的使用示例
public static void main(String[] args) {
String urls = "https://p.qqan.com/up/2022-8/2022861038193550.jpg," + "https://www.baidu.com,"
+ "https://p.qqan.com/up/2022-8/2022861342332724.jpg,"
+ "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4," + "https://media.w3.org/2010/05/sintel/trailer.mp4,"
+ "http://music.163.com/song/media/outer/url?id=447925558.mp3,"
+ "http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3";
System.out.println(getUrlByContentType(urls, ContentTypeEnum.image.getContentType()));
System.out.println(getUrlByContentType(urls, ContentTypeEnum.audio.getContentType()));
System.out.println(getUrlByContentType(urls, ContentTypeEnum.video.getContentType()));
}
结果展示

2万+

被折叠的 条评论
为什么被折叠?



