类 ResourceUtil
- java.lang.Object
-
- cc.shacocloud.mirage.utils.resource.ResourceUtil
-
public abstract class ResourceUtil extends Object
用于将资源位置解析为文件系统中的文件的实用工具方法
-
-
字段概要
字段 修饰符和类型 字段 说明 static StringCLASSPATH_URL_PREFIX用于从类路径加载的伪 URL 前缀: "classpath:".static StringFILE_URL_PREFIX用于从文件系统加载的 URL 前缀: "file:".static StringJAR_FILE_EXTENSION常规 jar 文件的文件扩展名: ".jar".static StringJAR_URL_PREFIX用于从 jar 文件加载的 URL 前缀: "jar:".static StringJAR_URL_SEPARATORJAR URL 和 JAR 中的文件路径之间的分隔符: "!static StringURL_PROTOCOL_FILE文件系统中文件的 URL 协议:"file".static StringURL_PROTOCOL_JARjar 文件中条目的 URL 协议: "jar".static StringURL_PROTOCOL_ZIP来自 zip 文件的条目的 URL 协议:"zip".
-
构造器概要
构造器 构造器 说明 ResourceUtil()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static @NotNull URLextractJarFileURL(@NotNull URL jarUrl)从给定的 URL(可能指向 jar 文件中的资源或 jar 文件本身)中提取实际 jar 文件的 URLstatic @NotNull FilegetFile(@NotNull String resourceLocation)将给定的资源位置解析为java.io.File,即文件系统中的文件static @NotNull FilegetFile(@NotNull URL resourceUrl, String description)将给定的资源 URL 解析为java.io.File,即文件系统中的文件.static @NotNull FilegetFile(URL resourceUrl)将给定的资源 URL 解析为java.io.File,即文件系统中的文件static @NotNull ResourcegetResource(@NotNull String resourceLocation)获取资源对象static @NotNull URLgetURL(@NotNull String resourceLocation)将给定的资源位置解析为java.net.URLstatic booleanisFileURL(@NotNull URL url)确定给定的 URL 是否指向文件系统中的资源static booleanisJarFileURL(@NotNull URL url)确定给定的 URL 是否指向 jar 文件本身,即具有协议 file 并以 .jar 扩展名结尾static booleanisJarURL(@NotNull URL url)确定给定的 URL 是否指向 jar 文件中的资源static booleanisUrl(@Nullable String resourceLocation)返回给定的资源位置是否为 URLstatic Stringnormalize(String path)修复路径
如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留 1.static @NotNull URItoURI(@NotNull String location)为给定位置字符串创建一个 URI 实例,首先将空格替换为 %20 URI 编码static @NotNull URItoURI(@NotNull URL url)为给定 URL 创建一个 URI 实例,首先将空格替换为 %20 URI 编码
-
-
-
字段详细资料
-
CLASSPATH_URL_PREFIX
public static final String CLASSPATH_URL_PREFIX
用于从类路径加载的伪 URL 前缀: "classpath:".- 另请参阅:
- 常量字段值
-
URL_PROTOCOL_ZIP
public static final String URL_PROTOCOL_ZIP
来自 zip 文件的条目的 URL 协议:"zip".- 另请参阅:
- 常量字段值
-
JAR_FILE_EXTENSION
public static final String JAR_FILE_EXTENSION
常规 jar 文件的文件扩展名: ".jar".- 另请参阅:
- 常量字段值
-
-
方法详细资料
-
getResource
@NotNull @Contract("_ -> new") public static @NotNull Resource getResource(@NotNull @NotNull String resourceLocation)获取资源对象- 参数:
resourceLocation- 资源路径- 返回:
Resource
-
isUrl
public static boolean isUrl(@Nullable @Nullable String resourceLocation)返回给定的资源位置是否为 URL- 另请参阅:
CLASSPATH_URL_PREFIX,URL
-
getURL
@NotNull public static @NotNull URL getURL(@NotNull @NotNull String resourceLocation) throws FileNotFoundException
将给定的资源位置解析为java.net.URL- 参数:
resourceLocation- 要解析的资源位置- 返回:
URL- 抛出:
FileNotFoundException- 如果无法将资源解析为 URL
-
getFile
@NotNull public static @NotNull File getFile(@NotNull @NotNull String resourceLocation) throws FileNotFoundException
将给定的资源位置解析为java.io.File,即文件系统中的文件不检查文件是否实际存在,只需返回给定位置对应的文件
- 参数:
resourceLocation- 要解析的资源位置- 返回:
- 相应的文件对象
- 抛出:
FileNotFoundException- 如果无法将资源解析为文件系统中的文件
-
getFile
@Contract("_ -> new") @NotNull public static @NotNull File getFile(URL resourceUrl) throws FileNotFoundException将给定的资源 URL 解析为java.io.File,即文件系统中的文件- 参数:
resourceUrl- 要解析的资源 URL- 返回:
- 相应的文件对象
- 抛出:
FileNotFoundException- 如果无法将 URL 解析为文件系统中的文件
-
getFile
@NotNull @Contract("_, _ -> new") public static @NotNull File getFile(@NotNull @NotNull URL resourceUrl, String description) throws FileNotFoundException将给定的资源 URL 解析为java.io.File,即文件系统中的文件.- 参数:
resourceUrl- 要解析的资源 URLdescription- 为其创建 URL 的原始资源的说明(例如,类路径位置)- 返回:
- 相应的文件对象
- 抛出:
FileNotFoundException- 如果无法将 URL 解析为文件系统中的文件
-
isFileURL
public static boolean isFileURL(@NotNull @NotNull URL url)确定给定的 URL 是否指向文件系统中的资源- 另请参阅:
URL_PROTOCOL_FILE
-
isJarURL
public static boolean isJarURL(@NotNull @NotNull URL url)确定给定的 URL 是否指向 jar 文件中的资源- 另请参阅:
URL_PROTOCOL_JAR,URL_PROTOCOL_ZIP
-
isJarFileURL
public static boolean isJarFileURL(@NotNull @NotNull URL url)确定给定的 URL 是否指向 jar 文件本身,即具有协议 file 并以 .jar 扩展名结尾
-
extractJarFileURL
@NotNull public static @NotNull URL extractJarFileURL(@NotNull @NotNull URL jarUrl) throws MalformedURLException
从给定的 URL(可能指向 jar 文件中的资源或 jar 文件本身)中提取实际 jar 文件的 URL- 参数:
jarUrl- jarUrl- 返回:
- 实际 jar 文件的 URL
- 抛出:
MalformedURLException- 如果无法提取有效的 jar 文件 URL
-
toURI
@NotNull @Contract("_ -> new") public static @NotNull URI toURI(@NotNull @NotNull URL url) throws URISyntaxException为给定 URL 创建一个 URI 实例,首先将空格替换为 %20 URI 编码- 参数:
url- 要转换为 URI 实例的 URL- 返回:
- URI 实例
- 抛出:
URISyntaxException- 如果网址不是有效的 URI- 另请参阅:
URL.toURI()
-
toURI
@Contract("_ -> new") @NotNull public static @NotNull URI toURI(@NotNull @NotNull String location) throws URISyntaxException为给定位置字符串创建一个 URI 实例,首先将空格替换为 %20 URI 编码- 参数:
location- 要转换为 URI 实例的位置字符串- 返回:
- URI 实例
- 抛出:
URISyntaxException- 如果网址不是有效的 URI
-
normalize
public static String normalize(String path)
修复路径
如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留- 1. 统一用 /
- 2. 多个 / 转换为一个 /
- 3. 去除左边空格
- 4. .. 和 . 转换为绝对路径,当..多于已有路径时,直接返回根路径
栗子:
"/foo//" =》 "/foo/" "/foo/./" =》 "/foo/" "/foo/../bar" =》 "/bar" "/foo/../bar/" =》 "/bar/" "/foo/../bar/../baz" =》 "/baz" "/../" =》 "/" "foo/bar/.." =》 "foo" "foo/../bar" =》 "bar" "foo/../../bar" =》 "bar" "//server/foo/../bar" =》 "/server/bar" "//server/../bar" =》 "/bar" "C:\\foo\\..\\bar" =》 "C:/bar" "C:\\..\\bar" =》 "C:/bar" "~/foo/../bar/" =》 "~/bar/" "~/../bar" =》 普通用户运行是'bar的home目录',ROOT用户运行是'/bar'
- 参数:
path- 原路径- 返回:
- 修复后的路径
-
-