在安卓系統中讀寫資料
阿新 • • 發佈:2019-01-02
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"/>
讀不需要許可權