歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android數據存儲之ContentProvider&Preferences

Android平台下的數據存儲主要包括文件的流讀取,輕量級數據庫SQLite,ContentProvider和Preference

當App被安裝後.其所在的安裝包中會有一個相應的文件夾用於存放自己的數據.只有應用程序自己本身才對這個文件夾有寫入權限,路徑是/data/data/APP包名/.下面是使用文件I/O方法直接往手機中存儲數據.主要使用了FileInputStream和FileOutputStream這個兩個類.

  1. public class UIDataActivity extends Activity {  
  2.       
  3.     public static final String ENCODING = "UTF-8";  
  4.     String fileName="test.txt";  
  5.     String message = "Android數據存儲I/O例子 ";  
  6.     TextView textView;  
  7.       
  8.       
  9.     /** Called when the activity is first created. */  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.           
  15.         /* 
  16.          * 本示例是應用程序在私有數據文件夾下創建一個文件並讀取其中的數據顯示在TextView上 
  17.          */  
  18.           
  19.         writeFileData(fileName,message);  
  20.           
  21.         String result = readFileData(fileName);  
  22.           
  23.         textView = (TextView)findViewById(R.id.tv);  
  24.         textView.setText(result);  
  25.     }  
  26.       
  27.     public void writeFileData(String fileName,String message){  
  28.         //使用FileOutputStream對象如果文件不存在或者不可以寫入時.會拋出FileNotFoundException異常   
  29.         try {  
  30.             FileOutputStream stream = openFileOutput(fileName, MODE_PRIVATE);  
  31.             byte[] bytes = message.getBytes();  
  32.             stream.write(bytes);  
  33.             stream.close();  
  34.         } catch (FileNotFoundException e) {  
  35.             // TODO Auto-generated catch block   
  36.             e.printStackTrace();  
  37.         } catch (IOException e) {  
  38.             // TODO Auto-generated catch block   
  39.             e.printStackTrace();  
  40.         }  
  41.     }  
  42.       
  43.     public String readFileData(String fileName){  
  44.         String result ="";  
  45.         try {  
  46.             FileInputStream stream = openFileInput(fileName);  
  47.             int len = stream.available();  
  48.             byte[] bytes = new byte[len];  
  49.             stream.read(bytes);  
  50.             result = EncodingUtils.getString(bytes, ENCODING);  
  51.             stream.close();  
  52.         } catch (FileNotFoundException e) {  
  53.             // TODO Auto-generated catch block   
  54.             e.printStackTrace();  
  55.         } catch (IOException e) {  
  56.             // TODO Auto-generated catch block   
  57.             e.printStackTrace();  
  58.         }  
  59.         return result;  
  60.     }  
  61. }  
Copyright © Linux教程網 All Rights Reserved