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

Android讀寫文件

用文件進行數據存儲

1.存儲到Android自帶的存儲空間中

Activity提供了openFileOutput()方法可以用於把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的。

  1. public class FileService {  
  2.     private Context context;  
  3.      public FileService(Context context) {  
  4.         this.context = context;  
  5.     }  
  6.     /**  
  7.      * 保存文件  
  8.      * @param filename 文件名稱  
  9.      * @param content  文件內容  
  10.      * @throws IOException   
  11.      */  
  12.     public void save(String filename, String content) throws Exception {  
  13.         //利用javaIO實現文件的保存  
  14.         FileOutputStream outStream =context.openFileOutput(filename, Context.MODE_PRIVATE);  
  15.         outStream.write(content.getBytes());//向文件中寫入數據,將字符串轉換為字節  
  16.         outStream.close();  
  17.     }  
  18. }  

通過Context.openFileOutput(String name,int mode)可以獲取一個文件輸入流

name為文件名,mode為文件模式,有4種模式

輸出流指向路徑為:/data/data/包名/files/

文件模式在Context中有定義常量

MODE_PRIVATE                              私有的且覆蓋

MODE_APPEND                              私有的且追加

MODE_WORLD_READABLE           其他程序可讀但不可寫

MODE_WORLD_WRITEABLE          其他程序可寫但不可讀

組合模式使用(其他程序可寫也可讀),例如:MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE

2.寫入文件到SD卡

使用Activity的openFileOutput()方法保存文件,文件是存放在手機空間上,一般手機的存儲空間不是很大,存放些小文件還行,如果要存放像視頻這樣的大文件,是不可行的。對於像視頻這樣的大文件,我們可以把它存放在SDCard。 SDCard是干什麼的?你可以把它看作是移動硬盤或U盤。

(1).首先要在清單文件中(AndroidManifest.xml)中加入訪問SDCard的權限如下:

  1. <!-- 在SDCard中創建與刪除文件權限 -->  
  2.   
  3. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
  4.   
  5. <!-- 往SDCard寫入數據權限 -->  
  6.   
  7. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  

(2).判斷用戶是否插入SDCard卡

  1.         //判斷SDCard是否存在  
  2.         if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  3. service.saveToSDCard(filename,content);   //實現保存  
  4. Toast.makeText(getApplicationContext(), R.string.sdsuccess, 1).show();  
  5.         }else{  
  6.             Toast.makeText(getApplicationContext(), R.string.sdderror, 1).show();  
  7.         }  

(3).業務層保存操作

  1. public void saveToSDCard(String filename,String content)throws Exception{  
  2.  //Environment.getExternalStorageDirectory()表示找到sdcarf目錄  
  3.  File file =new File(Environment.getExternalStorageDirectory(),filename);  
  4.  FileOutputStream outStream =new FileOutputStream(file);  
  5.  outStream.write(content.getBytes());  
  6.  outStream.close();  
  7. }  
Copyright © Linux教程網 All Rights Reserved