日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android手机的内部存储

發(fā)布時(shí)間:2023/12/20 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android手机的内部存储 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

內(nèi)部存儲(chǔ):

在data/data/packagename中(一個(gè)app對(duì)應(yīng)一個(gè)packagename)

常見(jiàn)文件夾有cache ,code_cache ,files , databases , shared_prefs 和一個(gè)lib文件

?

files: 文件緩存目錄,一般存小的文件緩存,如果是圖片,不建議放這里,一般放到外置卡。

cache目錄: 存放一些其他緩存

databases: 存放數(shù)據(jù)庫(kù)

lib: 存放應(yīng)用的so目錄

shared_prefs: 存放應(yīng)用的SharedPreferences

?

常用方法:

1. Context.getFilesDir() ? 返回一個(gè)File對(duì)象,當(dāng)Log打印出file.getAbsolutePath()時(shí)看到的是:

/data/user/0/packagename/files ,

而user下的文件夾0就是data\data的一個(gè)鏈接名, 實(shí)際位置就是在 /data/data/packagename/files里

注意安裝app后files文件夾里若沒(méi)有任何東西時(shí)是不會(huì)看到這個(gè)文件夾的,而執(zhí)行以下代碼:

File f1 = getFilesDir(); Log.e("TAG","getFilesDir(): " + f1.getAbsolutePath()); try {File dir1 = new File(getFilesDir(),"dir1");if (!dir1.exists()){dir1.mkdir();}File f = new File(dir1, "test1.txt");FileOutputStream fos = new FileOutputStream(f);String txt = "Hello test1!";fos.write(txt.getBytes());fos.close(); }catch (Exception e){e.printStackTrace(); }

結(jié)果會(huì)自動(dòng)在/data/data/packagename中先創(chuàng)建一個(gè)files文件夾,在files里再創(chuàng)建了一個(gè)dir1文件夾,dir1中有一個(gè)test1.txt

若不需要?jiǎng)?chuàng)建文件夾,安卓還為我們提供了一個(gè)簡(jiǎn)便方法,得到可直接在files中寫入文件的輸出流,執(zhí)行以下代碼:

String fileName = "test2.txt"; String txt = "hello test2"; FileOutputStream fos; try {fos = openFileOutput(fileName,MODE_PRIVATE);fos.write(txt.getBytes());fos.close(); }catch (Exception e){e.printStackTrace(); }

Context.openFileOutput(String name, int mode)返回一個(gè)輸出流

Context.openFileInput(String name) 返回一個(gè)輸入流

此時(shí)目錄結(jié)構(gòu)如下:

?

2. getCacheDir() 和 getCodeCacheDir() 顯然分別返回 /data/data/packagename下cache和code_cache對(duì)應(yīng)的File對(duì)象

?

3.在包下創(chuàng)建目錄(與files,cache這些文件夾同級(jí))

File myFile = getDir("myfile",MODE_PRIVATE); if(!myFile.exists()){myFile.mkdir(); }

結(jié)果目錄為:

app_myfile 就是自己創(chuàng)建的文件夾

?

總結(jié):

1). 對(duì)files:getFilesDir()

==? new File("/data/data/"+ context.getPackageName() + "/files")

(openFileOutput,openFileInput得到的是文件流)

?

2).對(duì)cache和code_cache

getCacheDir() 和 getCodeCacheDir()

== new File("/data/data/"+ context.getPackageName() + "/cache") 和 new File("/data/data/"+ context.getPackageName() + "/code_cache")

?

3).對(duì)根目錄

getDir(String name, int mode)

== new File("/data/data/"+ context.getPackageName() + "/" + name)

?

4) . 對(duì)shared_prefs

1.Context類中的getSharedPreferences(String name, int mode) 方法

SharedPreferences sp = getSharedPreferences("data",MODE_PRIVATE);

2.Activity類中的getPreferences(int mode) 方法

用法同上,不用傳入sp的name是因?yàn)槭褂么朔椒ㄊ菚?huì)自動(dòng)將當(dāng)前活動(dòng)的類名作為sp的文件名

?

3.PreferenceManager類中的getDefaultSharedPreferences(Context context) 方法

這是一個(gè)靜態(tài)方法,接收一個(gè)Context參數(shù),并自動(dòng)使用應(yīng)用程序的包名作為前綴來(lái)命名sp文件

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的android手机的内部存储的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。