DisLruCache學習筆記

2021-08-01 15:13:56 字數 1738 閱讀 6046

延伸實現:

1 獲取儲存路徑

1.public file getdiskcachedir(context context, string uniquename)  else   

9.    return new file(cachepath + file.separator + uniquename);  

10.}  

3 標準使用

4 內部實現:

1 先判斷輸入的合法性

2 在響應目錄下建立journalfile用於記錄儲存日誌

3 建立disklrucache例項。

1.private boolean downloadurltostream(string urlstring, outputstream outputstream)   

14.        return true;  

15.    } catch (final ioexception e)  finally   

21.        try   

25.            if (in != null)   

28.        } catch (final ioexception e)   

31.    }  

32.    return false;  

33.}  

1 先要將的url轉化成md5

2 完整的讀取操作

1.new thread(new runnable()  else   

15.            }  

16.            mdisklrucache.flush();  

17.        } catch (ioexception e)   

20.    }  

21.}).start();  

4 內部分析:

1 edit方法會返回乙個editor物件。這個物件是disklrucache的內部類。

2 disklrucache的內部有三個內部類,分別是editor以及entry 還有snapshot(繼承了closeable介面)

3 含有強引用linkedhashmap 其中的key為url轉md5後的字串,value值為entry.

3 讀取快取

讀取的時候需要用到disklrucache的get方法。

1 讀取的時候需要傳入key值,這個值就是之錢存入時url轉為md5的值

1.string imageurl = 「  

2.string key = hashkeyfordisk(imageurl);  

3.disklrucache.snapshot snapshot = mdisklrucache.get(key); 

2 從get方法返回的snapshot物件中獲取inputstream.並用這個流來讀取

1.try   

10.} catch (ioexception e)   

3 內部實現:

1 在get的時候會先對之前檔案的關閉,再檢查key值是否合法

2 獲取的時候也是從強引用的linkedhashmap中根據key獲取響應的entry

3 呼叫editor的getcleanfile方法 返回乙個相應路徑file的例項。

4 取出的只是乙個路檔案的具體路徑

4 擴充:還有響應的remove flush close等方法

5 郭林部落格的擴充套件demo

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...