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. }  
  • 1
  • 2
  • 3
  • 下一页

相关内容