最近學習c++,看到不少經常使用的例子,好比文件切割,切割後後綴能夠自定義,別人就沒法從表面的一個文件看出是什麼,也沒法查看到原文件信息,只有合併後才能識別這廬山真面目c++
實現也比較粗暴,首先在應用層定義好兩個方法git
先是文件分割,寫一個測試方法,去調用定義好的 fileSplit ,傳入生成的路徑,自定義的後綴,還有切割的等份github
接着在適配器的點擊方法中去調用這個測試方法,而且彈出了一個提示,打印出文件輸出的路徑數組
殼子已經造好,主要代碼經過jni去調用咱們寫的C++代碼,經過C++去實現,在cpp文件中通樣定義好切割合併兩個方法app
首先是切割文件,獲取到咱們傳入的路徑後直接進行字符串截取,咱們以前在應用層傳入了一個私有路徑,我在私有目錄下操做,這有app卸載的時候也會跟着清除,咋不能作流氓app啊學習
這裏比較簡單,就是一個字符串截取,把路徑和文件名稱留下來,後綴換成咱們自定義的後綴,生成好切割的路徑存在數組裏測試
而後就是在這個路徑的基礎上去寫入文件,後面有項目地址,詳情請看具體代碼,這裏有一點須要注意,測試的文件是以前寫加密文件的時候寫的一個方法,生成文件加密解密,而後我是用的簽名生成的文件去切割合併的,省去了一個操做,因此須要換成你目錄的文件,或者直接運行個人項目,點擊加密文件自動生成測試文件也行加密
點擊文件切割分紅了三分,自定義.s的後綴,不過提示語仍是開始的,在根目錄下,目前已經換成了私有目錄下,圖片以前作的,沒有更換,看輸出的log日誌3d
文件合併也一相似,拿到切割的完整地址(含後綴)日誌
而後把文件寫入到新的文件裏,在把合併好的文件刪除
效果圖以下
能夠看到以前切割的三個文件不見了,生成了一個新的合併文件,點開內容跟以前的一致,再看日誌輸出
o的k