欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)例詳解Android文件存儲數(shù)據(jù)方式

 更新時間:2016年01月12日 10:10:24   作者:Snail  
總體的來講,數(shù)據(jù)存儲方式有三種:一個是文件,一個是數(shù)據(jù)庫,另一個則是網(wǎng)絡(luò)。下面通過本文給大家介紹Android文件存儲數(shù)據(jù)方式,對android文件存儲數(shù)據(jù)相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧

總體的來講,數(shù)據(jù)存儲方式有三種:一個是文件,一個是數(shù)據(jù)庫,另一個則是網(wǎng)絡(luò)。下面通過本文給大家介紹Android文件存儲數(shù)據(jù)方式。

1.文件存儲數(shù)據(jù)使用了Java中的IO操作來進(jìn)行文件的保存和讀取,只不過Android在Context類中封裝好了輸入流和輸出流的獲取方法。

創(chuàng)建的存儲文件保存在/data/data/<package name>/files文件夾下。

2.操作。

保存文件內(nèi)容:通過Context.openFileOutput獲取輸出流,參數(shù)分別為文件名和存儲模式。
讀取文件內(nèi)容:通過Context.openFileInput獲取輸入流,參數(shù)為文件名。
刪除文件:Context.deleteFile刪除指定的文件,參數(shù)為將要刪除的文件的名稱。
獲取文件名列表:通過Context.fileList獲取files目錄下的所有文件名數(shù)組。

*獲取文件路徑的方法:

絕對路徑:/data/data/<package name>/files/filename

Context:Context.getFilesDir()可以獲取到"/data/data/<package name>/files"

3.四種文件保存的模式。

Context.MODE_PRIVATE 為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪問,在該模式下寫入的內(nèi)容會覆蓋原文件的內(nèi)容。

Context.MODE_APPEND 檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件。
MODE_WORLD_READABLE 表示當(dāng)前文件可以被其他應(yīng)用讀取。
MODE_WORLD_WRITEABLE 表示當(dāng)前文件可以被其他應(yīng)用寫入。

在使用模式時,可以用"+"來選擇多種模式,比如openFileOutput(FILENAME, Context.MODE_PRIVATE + MODE_WORLD_READABLE);

下面通過程序來演示下文件存儲的使用。完整代碼下載:android_files.rar

/** 
* MainActivity 
* 
* @author zuolongsnail 
* 
*/ 
public class MainActivity extends Activity { 
private EditText writeET; 
private Button writeBtn; 
private TextView contentView; 
public static final String FILENAME = "setting.set"; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
writeET = (EditText) findViewById(R.id.write_et); 
writeBtn = (Button) findViewById(R.id.write_btn); 
contentView = (TextView) findViewById(R.id.contentview); 
writeBtn.setOnClickListener(new OperateOnClickListener()); 
} 
class OperateOnClickListener implements OnClickListener { 
@Override 
public void onClick(View v) { 
writeFiles(writeET.getText().toString()); 
contentView.setText(readFiles()); 
System.out.println(getFilesDir()); 
} 
} 
// 保存文件內(nèi)容 
private void writeFiles(String content) { 
try { 
// 打開文件獲取輸出流,文件不存在則自動創(chuàng)建 
FileOutputStream fos = openFileOutput(FILENAME, 
Context.MODE_PRIVATE); 
fos.write(content.getBytes()); 
fos.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
// 讀取文件內(nèi)容 
private String readFiles() { 
String content = null; 
try { 
FileInputStream fis = openFileInput(FILENAME); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
byte[] buffer = new byte[1024]; 
int len = 0; 
while ((len = fis.read(buffer)) != -1) { 
baos.write(buffer, 0, len); 
} 
content = baos.toString(); 
fis.close(); 
baos.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
return content; 
} 
} 

程序截圖:

提供一個文件存儲數(shù)據(jù)的工具類:

/** 
* 文件存儲數(shù)據(jù)方式工具類 
* 
* @author zuolongsnail 
*/ 
public class FilesUtil { 
/** 
* 保存文件內(nèi)容 
* 
* @param c 
* @param fileName 
* 文件名稱 
* @param content 
* 內(nèi)容 
*/ 
private void writeFiles(Context c, String fileName, String content, int mode) 
throws Exception { 
// 打開文件獲取輸出流,文件不存在則自動創(chuàng)建 
FileOutputStream fos = c.openFileOutput(fileName, mode); 
fos.write(content.getBytes()); 
fos.close(); 
} 
/** 
* 讀取文件內(nèi)容 
* 
* @param c 
* @param fileName 
* 文件名稱 
* @return 返回文件內(nèi)容 
*/ 
private String readFiles(Context c, String fileName) throws Exception { 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
FileInputStream fis = c.openFileInput(fileName); 
byte[] buffer = new byte[1024]; 
int len = 0; 
while ((len = fis.read(buffer)) != -1) { 
baos.write(buffer, 0, len); 
} 
String content = baos.toString(); 
fis.close(); 
baos.close(); 
return content; 
} 
}

以上通過實(shí)例詳解Android文件存儲數(shù)據(jù)方式,希望對大家今后的工作學(xué)習(xí)有所幫助。

相關(guān)文章

  • Android 讀取txt,按行讀取的實(shí)例講解

    Android 讀取txt,按行讀取的實(shí)例講解

    今天小編就為大家分享一篇Android 讀取txt,按行讀取的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • android調(diào)用H5顯示加載中效果的示例代碼

    android調(diào)用H5顯示加載中效果的示例代碼

    本篇文章主要介紹了android調(diào)用H5顯示加載中效果的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • android10 隱藏SystemUI鎖屏下的多用戶圖標(biāo)的示例代碼

    android10 隱藏SystemUI鎖屏下的多用戶圖標(biāo)的示例代碼

    這篇文章主要介紹了android10 隱藏SystemUI鎖屏下的多用戶圖標(biāo),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Android Studio利用AChartEngine制作餅圖的方法

    Android Studio利用AChartEngine制作餅圖的方法

    閑來無事,發(fā)現(xiàn)市面上好多app都有餅圖統(tǒng)計(jì)的功能,得空自己實(shí)現(xiàn)一下,下面這篇文章主要給大家介紹了關(guān)于Android Studio利用AChartEngine制作餅圖的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-10-10
  • Android 自定義底部上拉控件的實(shí)現(xiàn)方法

    Android 自定義底部上拉控件的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Android 自定義底部上拉控件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android基于wheelView實(shí)現(xiàn)自定義日期選擇器

    Android基于wheelView實(shí)現(xiàn)自定義日期選擇器

    這篇文章主要為大家詳細(xì)介紹了Android基于wheelView實(shí)現(xiàn)自定義日期選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Flutter實(shí)現(xiàn)滾動選擇數(shù)字

    Flutter實(shí)現(xiàn)滾動選擇數(shù)字

    這篇文章主要為大家詳細(xì)介紹了Flutter實(shí)現(xiàn)滾動選擇數(shù)字,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • EditText限制小數(shù)點(diǎn)前后位數(shù)的實(shí)例

    EditText限制小數(shù)點(diǎn)前后位數(shù)的實(shí)例

    下面小編就為大家?guī)硪黄狤ditText限制小數(shù)點(diǎn)前后位數(shù)的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android usb設(shè)備權(quán)限查詢及自動獲取詳解流程

    Android usb設(shè)備權(quán)限查詢及自動獲取詳解流程

    本篇文章介紹了我想要獲取Android系統(tǒng)usb設(shè)備使用權(quán)限時遇到的問題,以及解決該問題的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Android開發(fā)實(shí)現(xiàn)的簡單五子棋游戲示例

    Android開發(fā)實(shí)現(xiàn)的簡單五子棋游戲示例

    這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)的簡單五子棋游戲,結(jié)合實(shí)例形式分析了Android實(shí)現(xiàn)五子棋游戲功能的布局、游戲功能等具體實(shí)現(xiàn)步驟與相關(guān)算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12

最新評論