1. 程式人生 > >在安卓系統中讀寫資料

在安卓系統中讀寫資料

0.安卓儲存空間:

目錄結構在FileExplorer中檢視,可通過Windows/Show View/Others/FileExplorer開啟
內部儲存空間internal storage):自帶的,必須有的

RAM記憶體:執行記憶體(電腦記憶體)
ROM記憶體:儲存空間(電腦硬碟)

內部儲存路徑data/data/包名資料夾/

(包名資料夾需要部署才會生成)

外部儲存空間external storage):SD卡(行動硬碟,可有可無)


1.在內部儲存中讀寫檔案

1)寫檔案相關程式碼;(不需要許可權)

File file = new File("data/data/com.example.positionv1_1/tmp.txt"
); FileOutputStream fileOutputStream; try { fileOutputStream = new FileOutputStream(file); fileOutputStream.write("name".getBytes()); fileOutputStream.close(); //應該寫在finally中的 } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }

2)讀檔案相關程式碼

FileInputStream fis;
try {
	fis = new
FileInputStream(file); BufferedReader bReader =new BufferedReader(new InputStreamReader(fis)); String string = bReader.readLine(); String[] strings = string.split("##"); } catch (Exception e) { e.printStackTrace(); }

3)通過API獲取路徑,不用字串表示

getFilesDir();//即data/data/包名資料夾/files
getCacheDir();//快取資料夾,data/data/包名資料夾/cache;當記憶體不足時自動刪除,1,重要資訊不放;2,自己指定快取閥值
//File如下定義 File file = new File(getFilesDir(),"tmp.txt")

2.在外部儲存中讀寫檔案

1)路徑字串表示

程式碼與內部一樣,只是路徑不一樣

  • 2.2版本之前,SD卡路徑:sdcard
  • 4.3版本之前,SD卡路徑:mnt/sdcard
  • 4.4版本開始,SD卡路徑:storage/sdcard

以上3中寫法都可以

2)API獲取路徑

Environment.getExternalStorageDirectory();

3)相關許可權

寫SD卡需要許可權:(許可權在清單檔案AndroidManifest.xml中載入)

<!-- 往SDCard寫入資料許可權 --> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

讀不需要許可權