2.ResourceUtils
从资源路径获取文件:
// 判断字符串是否是一个合法的 URL 字符串 。static boolean isUrl(String resourceLocation)// 获取 URLstatic URL getURL(String resourceLocation)// 获取文件(在 JAR 包内无法正常使用,需要是一个独立的文件)static File getFile(String resourceLocation)
Resource:
// 文件系统资源 D:\...FileSystemResource// URL 资源,如 file://... http://...UrlResource// 类路径下的资源,classpth:...ClassPathResource// Web 容器上下文中的资源(jar 包、war 包)ServletContextResource// 判断资源是否存在boolean exists()// 从资源中获得 File 对象File getFile()// 从资源中获得 URI 对象URI getURI()// 从资源中获得 URI 对象URL getURL()// 获得资源的 InputStreamInputStream getInputStream()// 获得资源的描述信息String getDescription()
输入:
/*** 将给定的 {@code byte[]} 字节数组内容复制到给定的 {@link OutputStream} 中,完成后保持流的打开状态 。* @param in 作为来源的字节数组* @param out 复制到目标输出流*/void copy(byte[] in, OutputStream out)/*** 将给定的 {@link InputStream} 内容复制到给定的 {@link OutputStream} 中,完成后保持流的打开状态 。* @param in 数据来源输入流* @param out 复制到目标输出流* @return 复制了多少字节*/int copy(InputStream in, OutputStream out)/*** 将给定的字符串 {@link String} 内容复制到给定的 {@link OutputStream} 中,完成后保持流的打开状态 。* @param in 数据来源:字符串* @param charset 来源字符串对应的字符集* @param out 复制到目标输出流*/void copy(String in, Charset charset, OutputStream out)/*** 将给定的 {@link InputStream} 内容复制到给定的 {@link OutputStream} 中,* 如果指定的复制范围朝出了 {@code InputStream} 的大小,则返回实际复制了多少字节 。* 两个流完成后都保持打开状态 。* @param in 数据来源输入流* @param out 复制到目标输出流* @param start 开始复制的位置* @param end 结束复制的位置* @return 复制了多少字节*/long copyRange(InputStream in, OutputStream out, long start, long end)
/*** 将给定的 {@link InputStream} 内容复制到新的 {@code byte[]} 中,完成后保持流的打开状态 。* @param in 作为数据来源的输入流(可能为 {@code null} 或 空)* @return 一个接收了数据的新字节数组 byte[] (可能为 空)*/byte[] copyToByteArray(InputStream in)/*** 将给定的 {@link InputStream} 内容复制到 {@link String} 中,完成后保持流的打开状态 。* @param in 作为数据来源的输入流(可能为 {@code null} 或 空)* @param charset {@link Charset}解码所需字符集* @return 一个接收了数据的字符串 String (可能为 空)*/String copyToString(InputStream in, Charset charset)/*** 清除给定流中的剩余内容,完成后保持流的打开状态 。* @param in 需要清空的输入流* @return 读取到多少字节*/int drain(InputStream in)
获取方法:
// 在类中查找指定方法Method findMethod(Class<?> clazz, String name)// 同上,额外提供方法参数类型作查找条件Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes)// 获得类中所有方法,包括继承而来的Method[] getAllDeclaredMethods(Class<?> leafClass)// 在类中查找指定构造方法Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes)// 是否是 equals() 方法boolean isEqualsMethod(Method method)// 是否是 hashCode() 方法boolean isHashCodeMethod(Method method)// 是否是 toString() 方法boolean isToStringMethod(Method method)// 是否是从 Object 类继承而来的方法boolean isObjectMethod(Method method)// 检查一个方法是否声明抛出指定异常boolean declaresException(Method method, Class<?> exceptionType)
经验总结扩展阅读
- python渗透测试入门——基础的网络编程工具
- 之四 2流高手速成记:SpringBoot整合redis及mongodb
- Springboot JSON 转换:Jackson篇
- SpringBoot整合ES+Kibana
- 手机截图怎么用(手机最强的截图工具)
- SpringBoot框架SpEL表达式注入漏洞复现与原理分析
- 手写自定义springboot-starter,感受框架的魅力和原理
- 一键上手时下最火AI作画工具
- 一 JPA入门学习集合springboot
- 关于Springboot启动报错 Whitelabel Error Page: This application has no explicit mapping