Android 数据存储操作(2)——文件存储
来源:互联网 发布:欧盟进出口数据 编辑:程序博客网 时间:2024/05/21 21:03
1.数据存储
在Android系统中的文件存储操作和Java中的操作类似,不过在Android系统中文件的存放地点可以多变,可以直接在移动设备内存或可移动存储媒介里存放文件, 也可以存放在应用程序中。默认情况下,其他应用程序是没有访问权限的。
(1) 如果要存放一个静态文件在应用程序中,并随着应用程序生成打包进一个APK中,那么可以保存该文件在工程中的res/raw/目录下,比如命名为test.txt.,然后在代码中就可以使用Resources.openRawResource(R.raw.test)打开它,该方法返回一个InputStream对象,可以使用它读取文件数据。
(2)Activity提供了openFileOutput( ) 方法可以用于把数据输出到文件中,其具体的实现过程与在Java环境中文件保存数据是一样的:
package com.example.filestorage;import java.io.FileOutputStream;import java.io.IOException;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.view.Menu;public class MainActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {FileOutputStream outStream = this.openFileOutput("test.txt", Context.MODE_PRIVATE);outStream.write("this is testing".getBytes());outStream.close();} catch (IOException e) {}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
openFileOutput( ) 方法的第一参数用于指定文件名,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建它。创建的文件在 /data/data/<package name>/files目录,如下图:
在Android系统中,openFileOutput()方法的第二个参数用于指定操作模式,有四种模式,分别为:
Context.MODE_PRIVATE = 0 //默认操作模式,该文件是私有的,只能被该应用程序访问,写入的内容只会覆盖原文件的内容
Context.MODE_APPEND = 32768 //该模式会检查文件是否存在,若文件存在就往该文件中追加内容,否则就创建一个新的文件
Context.MODE_WORLD_READABLE = 1 //表示当前文件可以被其他应用程序读取
Context.MODE_WORLD_WRITEABLE = 2 //表示当前文件可以被其他应用程序写入
如果希望文件被其他应用程序读和写,可以通过以下方式进行:
FileOutputStream outStream = this.openFileOutput("test.txt", Context.MODE_WORLD_WRITEABLE + Context.MODE_WORLD_READABLE);
2.数据读取
如果要打开存放在/data/data/<package_name>/files目录应用下的文件,可是使用Activity提供的openFileInput()方法:
FileInputStream inStream = this.openFileInput("test.txt");
3.把文件数据存放在SDCard中
使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放小文件还行,如果存放例如视频类的大文件是不行的,可以把大文件存放在SDCard中。
在程序中访问SDCard,需要申请访问SDCard的权限。
<!-- 在SDCard中创建与删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 在SDCard中写入数据的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
要往SDCard中存放文件,首先要判断手机是否装有SDCard,并且可以进行文件的读写:
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {File sdCardDir = Environment.getExternalStorageDirectory();File saveFile = new File(sdCardDir, "test.txt");FileOutputStream outStream = new FileOutputStream(saveFile);outStream.write("this is testing".getBytes());outStream.close();}
- Android 数据存储操作(2)——文件存储
- Android数据存储——文件存储
- android数据存储——文件存储
- android数据存储—文件存储
- 数据存储—文件的基本操作
- Android中数据存储——文件存储数据
- Android中数据存储——文件存储数据
- Android 数据存储操作(1)——SharedPreferences存储
- android 数据存储之文件操作
- android 数据存储操作3:文件读写
- Android学习14——数据存储之文件存储
- Android数据存储——2.文件存储_A_文本文件
- Android数据存储访问——文件存储
- Android数据存储访问——文件存储
- Android开发——数据存储之文件存储
- Android数据存储方式之——文件存储
- Android安卓——数据存储之文件存储
- Android 数据存储--文件存储
- rcp(插件开发)深入浅出Eclipse RCP(1):Hello RCP 转载
- 检测复选框组是否有被选中
- 服务器端主动推送PUSH
- 14.3.1 调用系统的拍照功能
- ios6下画面旋转的问题
- Android 数据存储操作(2)——文件存储
- 用request.getParameter获取值得到乱码的解决方式
- 5. 树
- 基于 Apache Mahout 构建社会化推荐引擎
- rcp(插件开发)深入浅出Eclipse RCP(2):RCP简介 转载
- 网络编程相关
- EJB JPA简介
- 14.3.2 实现自己的拍照Activity(1)
- pvfs中src/client/sysin/sys-get-eattr.sm与对应的src/client/sysin/sys-get-eattr.c