各位看官們大家好,上一回中咱們說的是Android中數據存儲概述的例子,這一回咱們說的例子是數據存儲之文件。閒話休提,言歸正轉。讓我們一起Talk Android吧!
看官們,我們在這一回中介紹文件這種數據存儲方式。文件存儲的內容,我們可以使用Java提供的API來進行,下面是向文件寫入內容的操作步驟,請大家參考:
- 1.獲取文件寫權限,在代碼進行申請,同時需要在配置文件中添加權限聲明;
//在manifest文件中添加文件讀寫權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//讀寫文件需要先申請權限
public void requestPermisson() {
if(ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "requestPermisson: ");
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}else {
WriteDataByJava();
}
}
//用戶選擇權限後,對選擇做處理
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 1) {
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.i(TAG, "onRequestPermissionsResult: Permission approved");
WriteDataByJava();
}else {
Log.i(TAG, "onRequestPermissionsResult: Permission denied");
Toast.makeText(getApplicationContext(),"Permission denied",Toast.LENGTH_LONG).show();
}
}
}
- 2.定義一個文件名稱,名稱中需要包含文件所在的路徑,不然無法存放;
- 3.使用步驟2中的文件名創建一個File類型的對象;
- 4.使用File對象創建一個空的文件;創建前需要判斷文件路徑是否存在,如果存在就創建文件,否則不創建文件;
- 5.使用File對象創建輸出流,注意處理異常;
- 6.把輸出流轉換爲可以輸出的緩衝流;
- 7.使用緩衝流的write方法把內容寫入文件;注意,該方法是重載方法,可以把多種類型的數據寫入文件,我使用了簡單的String類型;
- 8.關閉緩衝流,關閉也要處理異常。關閉操作可以放在上一步驟的終結器(finally)中顯得代碼整潔;
看官們,爲了代碼整潔,我們把步驟2到8的內容都放到了一個方法中,下面是該方法的代碼,請大家參考:
public void WriteDataByJava(){
File file = new File(mFileName);
String content = "Hello";
FileOutputStream outputStream = null;
BufferedWriter bufferedWriter = null;
Log.i(TAG, "WriteDataByJava: ");
//檢查文件路徑是否已經存在,如果存在就創建文件
if(file != null && file.getParentFile() != null) {
if (file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
}else {
Log.i(TAG, "WriteDataByJava: File Created Failed");
return;
}
try {
outputStream = new FileOutputStream(file);
}catch (IOException e) {
e.printStackTrace();
}
//通過輸出流給文件寫入內容
if(outputStream != null) {
bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
try {
bufferedWriter.write(content);
}catch (IOException e) {
e.printStackTrace();
}finally {
if(bufferedWriter != null) {
try {
bufferedWriter.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
各位看官,關於Android中數據存儲之文件的例子咱們就介紹到這裏,欲知後面還有什麼例子,且聽下回分解!