天天看點

java 小工具 (五)

文章目錄

  • ​​1.FileCopyUtils​​
  • ​​1.1 輸入​​
  • ​​1.2 輸出​​
  • ​​2.ResourceUtils​​
  • ​​2.1 從資源路徑擷取檔案​​
  • ​​2.2 擷取Resource​​
  • ​​3.StreamUtils​​
  • ​​3.1 輸入​​
  • ​​3.2 輸出​​
  • ​​4.AopUtils​​
  • ​​4.1 判斷代理類型​​
  • ​​4.2 擷取被代理對象的 class​​
  • ​​5.AopContext​​
  • ​​6.ObjectUtils​​
  • ​​6.1 擷取對象的基本資訊​​
  • ​​6.2 判斷工具​​

1.FileCopyUtils

org.springframework.util

1.1 輸入

// 從檔案中讀入到位元組數組中
byte[] copyToByteArray(File in)
// 從輸入流中讀入到位元組數組中
byte[] copyToByteArray(InputStream in)
// 從輸入流中讀入到字元串中
String copyToString(Reader in)      

1.2 輸出

// 從位元組數組到檔案
void copy(byte[] in, File out)
// 從檔案到檔案
int copy(File in, File out)
// 從位元組數組到輸出流
void copy(byte[] in, OutputStream out) 
// 從輸入流到輸出流
int copy(InputStream in, OutputStream out) 
// 從輸入流到輸出流
int copy(Reader in, Writer out)
// 從字元串到輸出流
void copy(String in, Writer out)      

2.ResourceUtils

org.springframework.util

2.1 從資源路徑擷取檔案

// 判斷字元串是否是一個合法的 URL 字元串。
static boolean isUrl(String resourceLocation)
// 擷取 URL
static URL getURL(String resourceLocation) 
// 擷取檔案(在 JAR 包内無法正常使用,需要是一個獨立的檔案)
static File getFile(String resourceLocation)      

2.2 擷取Resource

// 判斷資源是否存在
boolean exists()
// 從資源中獲得 File 對象
File getFile()
// 從資源中獲得 URI 對象
URI getURI()
// 從資源中獲得 URI 對象
URL getURL()
// 獲得資源的 InputStream
InputStream getInputStream()
// 獲得資源的描述資訊
String getDescription()      

3.StreamUtils

3.1 輸入

void copy(byte[] in, OutputStream out)
int copy(InputStream in, OutputStream out)
void copy(String in, Charset charset, OutputStream out)
long copyRange(InputStream in, OutputStream out, long start, long end)      

3.2 輸出

byte[] copyToByteArray(InputStream in)
String copyToString(InputStream in, Charset charset)
// 舍棄輸入流中的内容
int drain(InputStream in)      

4.AopUtils

4.1 判斷代理類型

// 判斷是不是 Spring 代理對象
boolean isAopProxy()
// 判斷是不是 jdk 動态代理對象
isJdkDynamicProxy()
// 判斷是不是 CGLIB 代理對象
boolean isCglibProxy()      

4.2 擷取被代理對象的 class

// 擷取被代理的目标 class
Class<?> getTargetClass()      

5.AopContext

Object currentProxy()      

6.ObjectUtils

6.1 擷取對象的基本資訊

// 擷取對象的類名。參數為 null 時,傳回字元串:"null" 
String nullSafeClassName(Object obj)
// 參數為 null 時,傳回 0
int nullSafeHashCode(Object object)
// 參數為 null 時,傳回字元串:"null"
String nullSafeToString(boolean[] array)
// 擷取對象 HashCode(十六進制形式字元串)。參數為 null 時,傳回 0 
String getIdentityHexString(Object obj)
// 擷取對象的類名和 HashCode。 參數為 null 時,傳回字元串:"" 
String identityToString(Object obj)
// 相當于 toString()方法,但參數為 null 時,傳回字元串:""
String getDisplayString(Object obj)      

6.2 判斷工具

// 判斷數組是否為空
boolean isEmpty(Object[] array)
// 判斷參數對象是否是數組
boolean isArray(Object obj)
// 判斷數組中是否包含指定元素
boolean containsElement(Object[] array, Object element)
// 相等,或同為 null時,傳回 true
boolean nullSafeEquals(Object o1, Object o2)
/*
判斷參數對象是否為空,判斷标準為:
    Optional: Optional.empty()
       Array: length == 0
CharSequence: length == 0
  Collection: Collection.isEmpty()
         Map: Map.isEmpty()
 */
boolean isEmpty(Object obj)