Android 中File数据存储
来源:互联网 发布:mac 查看命令路径 编辑:程序博客网 时间:2024/05/22 00:10
首先说下 File存储在Android 中有什么用途呢?
File存储:可以让我们轻松访问手机存储器上的文件(手机内存卡或者用户的SD卡)
android中我们可以在我们的手机自带的内存卡中或者用户插入的SD卡中进行文件的写入和读出,总之就是要建立一条输入输出通道。
将数据保存到我们手机的存储空间/*** 该方法是将数据保存在我们手机内置的存储空间,主要是调用Context.openFileOutput(fileName,MODE)方法就可以得到相应的输出流* fileName:不能使用我们常用的分隔符("/"),例如:aaa/test.txt,我们只能使用test.txt* 所保存的文件放在/data/data/包名/files/目录下,例如:/data/data/com.xin.activity/files/test.txt* MODE:有以下几种:* context.MODE_PRIVATE:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission denni错误,* 并且如果文件已经存在,重新写入的文件会覆盖掉以前文件当中的数据;* context.MODE_APPEND:当前应用程序下的私有数据,其他应用程序不能够进行读或者写访问,否则会出现permission denni错误,* 并且如果文件已经存在,重新写入的数据会追加到源文件的数据后面;* context.MODE_WORLD_READABLE:其他应用程序可以对该文件进行读的操作,不能进行写的操作,否则会出现permission denni错误;* context.MODE_WORLD_WRITEABLE:其他应用程序可以对该文件进行写的操作,不能进行读的操作,否则会出现permission denni错误;* 如果要使其他应用程序既可以对文件进行读取,又可以对文件进行写入,可以使用* context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE方式传入参数* 保存后的文件中存在中文是不会乱码的* 我们可以通过window-->android-->file explorer查看系统中的文件* @param fileName* @param fileContent* @throws Exception*/public void save(String fileName,String fileContent)throws Exception{FileOutputStream fos=context.openFileOutput(fileName, context.MODE_WORLD_WRITEABLE);fos.write(fileContent.getBytes());}从手机内置的存储空间里读取数据/*** 从手机内置的存储空间中读取数据,主要是调用context.openFileInput(fileName)方法,传入参数文件名称* @return*/public String read(String fileName)throws Exception{FileInputStream fis=context.openFileInput(fileName);byte[] buffer=new byte[1024];int len=0;//保存在内存中,也可以使用下面的方式进行输出ByteArrayOutputStream baos=new ByteArrayOutputStream();//StringBuilder sb=new StringBuilder();while((len=fis.read(buffer))!=-1){baos.write(buffer, 0, len);//sb.append(new String(buffer,0,len));}byte[] b=baos.toByteArray();return new String(b);//return sb.toString();}保存文件到手机的外部存储设备SD卡中/*** 保存文件到手机的外部存储设备SD卡中* 访问硬件设备,我们需要在AndroidMainifest.xml中配置相应的访问SD卡的权限* <!-- 在SD卡中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 向SD卡中写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>注意由于android系统的版本不同,所以外部存储设备的根目录可能会不一样,例如2.1版/sdcard/,而2.2版本的/mnt/sdcard/所以我们不能将其写死,使用Environment.getExternalStorageDirectory()即可得到不同版本的根目录,所以用这种方式如果文件已经存在,内容会覆盖* @param fileName* @param fileContent* @throws Exception*/public void saveToSDCard(String fileName,String fileContent)throws Exception{//Environment.getExternalStorageDirectory()--->/sdcardFile file=new File(Environment.getExternalStorageDirectory(),fileName);FileOutputStream fos=new FileOutputStream(file);fos.write(fileContent.getBytes());}将SD卡文件中的内容读取出来/*** 将SD卡文件中的内容读取出来* @param fileName* @return* @throws Exception*/public String readSDCard(String fileName)throws Exception{File file=new File(Environment.getExternalStorageDirectory()+File.separator+fileName);FileInputStream fis=new FileInputStream(file);byte[] buffer=new byte[1024];int len=0;ByteArrayOutputStream baos=new ByteArrayOutputStream();while((len=fis.read(buffer))!=-1){baos.write(buffer, 0, len);}byte[] b=baos.toByteArray();return new String(b);}其实只要我们学过Java 的相信上面的代码很 easy 就能理解从内存卡中读写主要是用到android中提供的当前上下文Context提供的两个类openFileInput和openFileOutput获得相应的字节输入流和字节输出流而操作SD卡上面的文件则主要是获得SD卡中文件所在的路径,可以通过Environment.getExternalStorageDirectory()来获得其根目录,然后对里面的文件进行相应的IO流操作即可。
0 0
- Android 中File数据存储
- Android中数据的存储之--------File
- 【Android数据存储】- File
- Android数据存储:File存储
- Android数据存储----File 存储
- Android中 File存储
- Android中使用File文件进行数据存储
- Android 数据存储这File
- Android数据存储之File
- Android----数据存储之File
- Android的数据存储--File
- Android的数据存储--File
- Android数据存储之File
- Android的数据存储--File
- Android的数据存储--File
- Android数据存储之File
- Android 之File数据存储--File
- Android数据存储:File文件存储
- 发呆
- O2O移动APP创新推广实战
- 大端(big endian)和小端(little endian)
- 用UIWindow作为弹出视图的遮罩层
- android开发经验小结汇总
- Android 中File数据存储
- 反编译APK文件的三种方法
- Google Android软件架构
- Jquery.ajax报parseerror Invalid JSON异常的原因和解决办法:不能解析
- select into 遇到空值
- 对mysql存储性能优化的基本理解
- 模拟二叉树 — 纪念植树节……
- Android Matrix类实现J2ME的drawRegion的镜像方法
- Cookie详解