Android文件存儲(chǔ)
看下網(wǎng)上隨處可以搜到的文件存儲(chǔ)套路
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ cacheDir=mContext.getExternalCacheDir().getPath(); }else { cacheDir=mContext.getCacheDir().getPath(); } fileOutputStream=new FileOutputStream(cacheDir+"/"+url);這段代碼肯定沒(méi)有錯(cuò)誤,但欺騙了多少年少的開(kāi)發(fā)者。
當(dāng)你這樣存儲(chǔ)文件的時(shí)候就會(huì)報(bào),該文件不存在,你開(kāi)始想這個(gè)路徑是我獲取的,又不是我寫(xiě)的,怎么會(huì)不存在,但獲取僅僅是邏輯上的存在,而不代表真實(shí)存在,所以我們必須要在這個(gè)文件不存在的時(shí)候,去創(chuàng)建它的文件夾,并創(chuàng)建這個(gè)文件 ,所以標(biāo)準(zhǔn)寫(xiě)法應(yīng)該是
private void initFile() { if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ cacheDir=mContext.getExternalCacheDir().getPath(); Log.d(TAG,"have SD"); }else { cacheDir=mContext.getCacheDir().getPath(); Log.d(TAG," not have SD"); } Log.d(TAG,cacheDir); File file=new File(cacheDir); if(!file.exists()) { Log.d(TAG, "file no exists"); file.mkdirs(); } }這樣的話,如果那個(gè)文件夾不存在的話,就去創(chuàng)建它,并且是遞歸創(chuàng)建,這個(gè)問(wèn)題就完美解決了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注