1. 程式人生 > >Guava原始碼閱讀之Resources

Guava原始碼閱讀之Resources

今天剛好用到了Resources來讀日誌檔案,研究一下;

Resources是 goole  io工具包下的一個類,   com.google.common.io.Resources;

該類有兩個註解:

@Beta
@GwtIncompatible
查了一下:
@Beta

表明一個公用API的未來版本是受不相容變更或刪除限制的

 * 擁有這個註釋標誌的API不受任何相容性保證

@GwtIncompatible

 * 說明一個方法可能無法與 GWT 一起使用

 * 他只能用於被 @GwtCompatible標誌的類的欄位,方法和內部類

聊聊Resources類中的方法:

 

先說最常用的兩個:

public static URL getResource(String resourceName) 
public static URL getResource(Class<?> contextClass, String resourceName) 

這兩個方法很類似,最常用的是第一個,

兩個方法都是基於類載入器,

返回檔名為resourceName的路徑。

/*第二個與第一個的區別就是第一個是絕對地址,第二個是相對於傳入class的相對地址     通過文件的理解,自己test好像有問題,待解決 */

public static ByteSource asByteSource(URL url)                     
public static CharSource asCharSource(URL url, Charset charset) 
public static byte[] toByteArray(URL url)
public static String toString(URL url, Charset charset) throws IOException 

前幾個靜態方法類似,都是進行型別轉換,把檔案轉換成相應的型別

public static List<String> readLines(URL url, Charset charset) throws IOException

讀取檔案的所有行,指定字符集

public static <T> T readLines(URL url, Charset charset, LineProcessor<T> callback) throws IOException 

從URL中讀取行,當回撥返回false時停止,或者我們已經讀取了所有的行。

public static void copy(URL from, OutputStream to) throws IOException )

將URL轉換成輸出流