鍍金池/ 教程/ Android/ Android內(nèi)部存儲
Android 應用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍牙)實例
Android RelativeLayout
Android最佳實踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android內(nèi)部存儲

Android提供多種存儲的應用程序存儲自己的數(shù)據(jù)。存儲的地點是共享的,內(nèi)部和外部存儲,SQLite存儲,并通過網(wǎng)絡連接存儲。

在本章中,我們要看看在內(nèi)部存儲。內(nèi)部存儲是設(shè)備存儲器上的專用數(shù)據(jù)的存儲。

默認情況下,這些文件是私有并由唯一應用程序訪問和刪除,當用戶刪除應用程序。

寫入文件

為了使用內(nèi)部存儲寫入某些數(shù)據(jù)到文件中,調(diào)用openFileOutput()方法用的文件和模式的名稱。該模式可以是 private , public,它的語法如下:

FileOutputStream fOut = openFileOutput("file name here",MODE_WORLD_READABLE);

該方法openFileOutput()返回FileOutputStream的一個實例。因此收到FileInputStream對象。之后可以調(diào)用write方法寫入文件數(shù)據(jù)。它的語法如下:

String str = "data";
fOut.write(str.getBytes());
fOut.close();

讀取文件

為了從剛才創(chuàng)建的文件中讀取數(shù)據(jù),openFileOutput()方法使用文件的名稱。它返回FileInputStream的一個實例。它的語法如下:

FileInputStream fin = openFileInput(file);

在此之后,可以調(diào)用read方法來一次從文件讀取一個字符,然后打印出來。它的語法如下:

int c;
String temp="";
while( (c = fin.read()) != -1){
   temp = temp + Character.toString((char)c);
}
//string temp contains all the data of the file.
fin.close();

除了寫入(write)和關(guān)閉(close)方法,對于更好寫入文件所提供FileOutputStream類的其他方法。這些方法如下: 

Sr.No 方法及說明
1 FileOutputStream(File file, boolean append)
這個方法構(gòu)造一個新的FileOutputStream寫入到文件。
2 getChannel()
此方法返回分享與當前流的位置上只寫FileChannel
3 getFD()
這個方法返回底層文件描述符
4 write(byte[] buffer, int byteOffset, int byteCount)
這個方法從字節(jié)數(shù)組緩沖區(qū)寫入字節(jié)計數(shù)開始位置偏移此流

除了用于良好的讀取文件所提供的FileInputStreamclass讀取和關(guān)閉,還有其它方法的方法。這些方法如下:

Sr.No 方法及說明
1 available()
此方法返回可以讀取或跳過沒有阻止更多的輸入字節(jié)的估計數(shù)目
2 getChannel()
此方法返回分享與當前流的位置只讀FileChannel
3 getFD()
這個方法返回底層文件描述符
4 read(byte[] buffer, int byteOffset, int byteCount)
此方法最多讀取length字節(jié),并將它們存儲字節(jié)數(shù)組b中開始的偏移offset

例子

這里有一個例子演示如何使用內(nèi)部存儲來存儲和讀取文件。它創(chuàng)建了一個基本的存儲應用程序,它可以從內(nèi)部存儲讀取并寫入。

為了試驗這個例子,可以在實際設(shè)備或模擬器運行此。

步驟 描述
1 使用Android Studio創(chuàng)建Android應用程序,并將其命名為: Storage 。在創(chuàng)建這個項目,確保目標SDK編譯在Android SDK的最新版本或使用更高級別的API
2 修改src/MainActivity.java文件中添加必要的代碼
3 修改res/layout/activity_main 添加相應XML組件
4 修改res/values/string.xml  添加必要的字符串
5 運行應用程序并選擇運行Android的設(shè)備,并在其上安裝的應用和驗證結(jié)果

以下是修改的主活動文件的內(nèi)容 src/com.yiibai.storage/MainActivity.java.

package com.example.storage;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

   private EditText et;
   private String data;
   private String file = "mydata";
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      et = (EditText)(findViewById(R.id.editText1));

   }

   public void save(View view){
      data = et.getText().toString();
      try {
         FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE);
         fOut.write(data.getBytes());
         fOut.close();
         Toast.makeText(getBaseContext(),"file saved",
         Toast.LENGTH_SHORT).show();
      } catch (上一篇:發(fā)布Android應用下一篇:Android自定義組件