文件存儲是 Android 中最基本的一種數據存儲方式,它不對存儲的內容進行任何的格式化處理,所有數據都是原封不動地保存到文件當中的,因而它比較適合用於存儲一些簡單的文本數據或二進制數據
文件存儲主要通過輸入流 來把數據保存到手機中,通過context類中提供了一個 openFileOutput ()方法,可以用於將數據存儲到指定的文件中。
這個方法接收兩個參數,第一個參數是文件名,在文件創建的時候使用的就是這個名稱,注意這裏指定的文件名不可以包含路徑,因爲所有的文件都是默認存儲到/data/data/
/files/ 目 錄下 的 。第 二 個 參數 是 文件 的 操作 模 式 ,主 要 有兩 種 模式 可 選 ,
MODE_PRIVATE 和 MODE_APPEND。其中 MODE_PRIVATE 是默認的操作模式,表示當指
定同樣文件名的時候,所寫入的內容將會覆蓋原文件中的內容,而 MODE_APPEND 則表示
如果該文件已存在就往文件裏面追加內容,不存在就創建新文件。
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saveFile();
}
private void saveFile() {
String data = "I am data in FirstLine\n";
FileOutputStream outputStream = null;
BufferedWriter bWriter = null;
try {
outputStream = openFileOutput("data", Context.MODE_PRIVATE);
bWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
bWriter.write(data);
bWriter.write("I am data in LastLine\n");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bWriter!=null) {
bWriter.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
可以從上面的代碼看出,我們在手機文件中存儲了一個名爲data的文件 ,並且在文件中寫入了兩行數據,我們用openOutFile這個方法,寫入文件 openFileOutput ()方法返回的是一個 FileOutputStream 對象,得到了這個對象之後就可以使用 io 流的方式將數據寫入到文件中了