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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Data Storage(数据存储)之内部储存(Internal Storage)

發布時間:2024/6/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Data Storage(数据存储)之内部储存(Internal Storage) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Data Storage(數據存儲)之內部儲存(Internal Storage)

讀取手機內部儲存,Activity 中調用 openFileOutput(file_name, mode)方法返回File 對象;

file_name: 文件名

mode: 操作文件的類型

Context.MODE_PRIVATE:代表文件是私有的,如果重新調用,則原來的數據會被覆蓋
Context.MODE_APPEND:先判斷文件是否存在,如果存在,則在在原來的數據后面追加內容 />
Context.MODE_WORLD_READABLE:其他應用程序由權限讀取
Context.MODE_WORLD_WRITEABLE:其他應用程序由權限寫入

如果當其他程序同時具有讀寫功能,則應該這樣寫:

openFileOutput(FILE_NAME, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

下面是個小Demo:

public void writeFile(View view) {try {FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);fos.write(string_01.getBytes());fos.close();Toast.makeText(InternalStorageActivity.this, "Saved...", Toast.LENGTH_LONG).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} }

讀取或者寫入文件,默認目錄是:/data/data/<package-name>/files/ 文件夾下
我們也可以使用Activity 提供的getCacheDir() 和getFilesDir() 方法:獲取/data/data/<package-name>/ 下的 /cache 和 /files

讀取文件則調用openFileInput(FILE_NAME) 方法

public void readFile(View view) {try {FileInputStream fis = openFileInput(FILE_NAME);BufferedReader br = new BufferedReader(new InputStreamReader(fis));String line = null;while ((line = br.readLine()) != null) {String str = new String(line);Log.i(TAG, str);}Toast.makeText(InternalStorageActivity.this, "Read...", Toast.LENGTH_LONG).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} }

操作外部儲存(內存卡)

由于Android 系統內存大小的局限,比如我們儲存文件就要把它放在外部存儲中,在操作之前,我們要在AndroidManifest.xml 中設置讀寫操作:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 、、、、 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

操作外部儲存(內存卡)

由于Android 系統內存大小的局限,比如我們儲存文件就要把它放在外部存儲中,在操作之前,我們要在AndroidManifest.xml 中設置
讀寫權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

創建和刪除權限

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

Android 中的Environment 類對外部存儲卡的操作,
getExternalStorageState() 方法,判斷外部儲存卡的狀態,如果為MEDIA_MOUNTED 則表示可操作
getExternalStorageDirectory() 方法,獲取外部儲存的目錄,可以對其目錄進行操作

/*** 讀取外部儲存卡 * 在外部儲存卡上創建一個demo.tet 文件,并寫入字符* 為了沿著文件已經寫入外部儲存,所有讀取創建的文件*/public void getExternalStorage(View view) throws IOException {// Android 中的Environment 類對外部存儲卡的操作,// getExternalStorageState() 方法,判斷外部儲存卡的狀態,如果為MEDIA_MOUNTED 則表示可操作//getExternalStorageDirectory() 方法,獲取外部儲存的目錄,可以對其目錄進行操作String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state)) {File sdcardDir = Environment.getExternalStorageDirectory();File saveFile = new File(sdcardDir, "demo.text");FileOutputStream fos = new FileOutputStream(saveFile);fos.write("text".getBytes());fos.close();Toast.makeText(InternalStorageActivity.this, "getExternalStorage", Toast.LENGTH_LONG).show();File[] fileDir = sdcardDir.listFiles();for (File file : fileDir) {String fileName = file.toString();Log.i(TAG, "FileName: " + fileName);}FileInputStream fis = new FileInputStream(saveFile);byte[] buffer = new byte[1024];int len = 0;String value = null;while ((len = fis.read(buffer)) != -1) {value = new String(buffer, 0, len);}fis.close();Log.i(TAG, "getValue = " + value);} }

轉載于:https://www.cnblogs.com/Tikitoo/p/android-data-internal-storage.html

總結

以上是生活随笔為你收集整理的Data Storage(数据存储)之内部储存(Internal Storage)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。