Android的3種資料儲存技術(一)File儲存
File儲存
引文: 資料儲存是實現資料持久化的方法之一
原理: 把資料儲存在手機記憶體裡,以便軟體對重要資料進行保留。
假使某個軟體關閉後,就什麼記錄也沒有了,那也必然會引起使用者的極度不滿把!
最常見的資料儲存,像我們的QQ的記住密碼和一些本地的聊天記錄,就是儲存在手機記憶體裡的
接下來我們就開始學習超級簡單的File儲存把
資料儲存方法:
一、File儲存(本章將要講解的內容)
二、SharedPreferences儲存
三、SQLite儲存
不要覺得有三種檔案儲存便覺得困難,那麼我告訴你,File儲存和SharedPreferences儲存極度類似,所以我們只要熟練知曉File儲存的原理 就可以很快的學會另一個,這便是觸類旁通。另外SQLite是資料庫儲存,學完他你又會對SQL資料庫領域有所涉足,不僅僅止步於JAVA的程式碼,怎麼樣?聽完後你的興趣是不是濃厚起來了?
那麼接下來我們先認識一下File儲存中的 寫 資料的實現方法
寫,當然是把資料寫出去,那自然應該是“Output”
FileOutputStream fos=openFileOutput("data",Context.MODE_PRIVATE);
openFileOutput引數說明:
第一個引數name:檔名(不含路徑)
第二個引數mode:儲存模式(這裡有兩種模式供選擇,MODE_PRIVATE(同名檔案覆蓋<如果有同名檔案,直接覆蓋原檔案中的內容>) MODE_APPEND(同名檔案追加<如果有同名檔案,向原檔案裡追加內容>))
openFileOutput要用一個檔案位元組輸出流FileOutputStream來接收
接下來我們要新建一個字元緩衝輸出流,通過它來將一串文字寫出到檔案裡
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write("6666666666");
至此,我們新建了一個檔名為"data"的檔案來儲存資料,並對其寫入了"6666666666"這個資料
接下來我們來看一下完整的原始碼
public void write(String inputText){
FileOutputStream fos;
BufferedWriter writer=null;//這裡要初始化一個null
try{
fos=openFileOutput("data", Context.MODE_PRIVATE);
writer=new BufferedWriter(new OutputStreamWriter(fos));
writer.write(inputText);//這裡寫入引數
}catch(IOException e){
e.printStackTrace();
}finally {
try{
if(writer != null){
writer.close();//關閉字元緩衝輸出流
}
}catch (IOException e){
e.printStackTrace();
}
}
}
上面短短几行程式碼,我們便將資料寫入到了手機記憶體中,此時你們一定會好奇,資料存在哪裡了呢?
路徑:檔案預設儲存到data/data/< packname >/files/目錄下
如果你是安卓模擬器,可以開啟Android Studio裡面的Device File Explorer 找到相關目錄
如果你是用自己的手機進行除錯,那麼直接用手機自帶的檔案管理找到相關目錄即可
最後開啟data檔案 就能看到我們寫入的字串資料了
寫完了資料,接下來就是讀取了,程式碼和上面很相似
寫入的時候用Output 那我們讀取 自然應該是Input
FileInputStream fis=OpenFileInput("data");//這裡只有一個引數,便是讀取的檔名
BufferedReader=new BufferedReader(new InputStreamReader(fis));//字元緩衝輸入流
Output變成了Input,Writer變成了Reader,完全相反,很容易記憶
public String read(){
FileInputStream fis;
BufferedReader reader=null;//這裡要初始化null
StringBuilder builder=new StringBuilder();
try{
fis=openFileInput("data");
reader=new BufferedReader(new InputStreamReader(fis));
String lines="";
while((lines=reader.readLine())!=null){
builder.append(lines);
}
}catch (IOException e){
e.printStackTrace();
}finally {
try {
reader.close();
}catch (IOException e){
e.printStackTrace();
}
}
return builder.toString();
}
值得注意的是使用readline進行讀取BufferedReader的內容
接下來我們實戰一下 寫一個記住賬號的案例 新建一個AndroidStudio專案
佈局如下:
然後我們進行JAVA後端程式碼編寫
public class MainActivity extends AppCompatActivity {
EditText account;
Button write,read;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
account=findViewById(R.id.account);
write=findViewById(R.id.write);
read=findViewById(R.id.read);
write.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
write(account.getText().toString());
}
});
read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
account.setText(read());
}
});
}
public void write(String inputText){
FileOutputStream fos;
BufferedWriter writer=null;
try{
fos=openFileOutput("data", Context.MODE_PRIVATE);
writer=new BufferedWriter(new OutputStreamWriter(fos));
writer.write(inputText);
}catch(IOException e){
e.printStackTrace();
}finally {
try{
if(writer != null){
writer.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
public String read(){
FileInputStream fis;
BufferedReader reader=null;//這裡要初始化null
StringBuilder builder=new StringBuilder();
try{
fis=openFileInput("data");
reader=new BufferedReader(new InputStreamReader(fis));
String lines="";
while((lines=reader.readLine())!=null){
builder.append(lines);
}
}catch (IOException e){
e.printStackTrace();
}finally {
try {
reader.close();
}catch (IOException e){
e.printStackTrace();
}
}
return builder.toString();
}
}
到此為止,我們的讀寫功能就全部實現了,來執行一下看看效果
我們輸入123456,並點選寫入資料,隨後刪掉EditText的內容後,點選讀取資料,發現123456又回來了!
以上就是File儲存的基本用法了,希望各位學習愉快,如有不足希望指正
這是本人第一章部落格,嘗試著認真的去寫了,希望能細緻易懂,所以篇幅過大,今後會多加改正,謝謝大家!!
相關文章
- 詳解Android資料儲存技術Android
- openGauss儲存技術(一)——行儲存引擎儲存引擎
- Android中的資料儲存之檔案儲存Android
- Android回顧--(十二) 資料儲存的幾種方式Android
- 資料儲存--檔案儲存
- 前端儲存技術前端
- 33.Android資料儲存Android
- iOS開發資料儲存篇—iOS中的幾種資料儲存方式iOS
- Android中的資料儲存之SharedPreferencesAndroid
- 資料儲存技術的演進趨勢研判
- Android儲存(2)– 介面卡儲存Android
- 聚焦資料時代新儲存需求,浪潮儲存的新儲存之道
- Android儲存(3)– 裝置配置Android
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- Android-內部儲存和外部儲存Android
- 雲端計算導論 # 3 雲端儲存技術:概念、結構模型、關鍵技術、分散式資料儲存、常見儲存結構、應用與問題模型分散式
- 斷電也能儲存資料的MRAM技術精髓
- 雲端儲存的技術原理
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 資料儲存(歸檔解檔,沙河儲存)
- 37.Android資料儲存再整理Android
- Android 外部儲存Android
- 分散式系統技術:儲存之資料庫分散式資料庫
- openGauss儲存技術(二)——列儲存引擎和記憶體引擎儲存引擎記憶體
- iOS 資料儲存iOS
- TiDB資料儲存TiDB
- 資料儲存:CoreData
- k8s之資料儲存-配置儲存K8S
- 大資料開發的儲存技術探索與實踐大資料
- 超越 Cookie:當今的客戶端資料儲存技術Cookie客戶端
- 瀏覽器儲存資料的幾種方法瀏覽器
- 如何利用區塊鏈技術進行資料儲存?區塊鏈
- 可計算儲存技術全面升級CSD 3000儲存體驗
- 儲存篇(3)
- 領存工業級三防資料儲存SSD-3U Open VPX 儲存模組
- 【Python3網路爬蟲開發實戰】5-資料儲存-3-非關係型資料庫儲存-1 MongoDB儲存Python爬蟲資料庫MongoDB