本文目录一览:
Android如何使用文件进行数据存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中 具体的实现过程与在J SE环境中保存数据到文件中是一样的
public class FileActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
# ;
FileOutputStream outStream = this openFileOutput(# ;itcast txt# ; Context MODE_PRIVATE);
outStream write(# ;传智播客# ; getBytes());
outStream close();
}
}
openFileOutput()方法的第一参数用于指定文件名称 不能包含路径分隔符 / 如果文件不存在 Android 会自动创建它 创建的文件保存在/data/data/package name/files目录 如 /data/data/cn itcast action/files/itcast txt 通过点击Eclipse菜单 Window Show View Other 在对话窗口中展开android文件夹 选择下面的File Explorer视图 然后在File Explorer视图中展开/data/data/package name/files目录就可以看到该文件 -android文件数据写入
openFileOutput()方法的第二参数用于指定操作模式 有四种模式 分别为 Context MODE_PRIVATE ?=?
Context MODE_APPEND ?=?
Context MODE_WORLD_READABLE =?
Context MODE_WORLD_WRITEABLE =?
Context MODE_PRIVATE 为默认操作模式 代表该文件是私有数据 只能被应用本身访问 在该模式下 写入的内容会覆盖原文件的内容 如果想把新写入的内容追加到原文件中 可以使用Context MODE_APPEND-android文件数据写入
Context MODE_APPEND 模式会检查文件是否存在 存在就往文件追加内容 否则就创建新文件
Context MODE_WORLD_READABLE和Context MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件
MODE_WORLD_READABLE 表示当前文件可以被其他应用读取 MODE_WORLD_WRITEABLE 表示当前文件可以被其他应用写入
如果希望文件被其他应用读和写 可以传入
openFileOutput(# ;itcast txt# ; Context MODE_WORLD_READABLE + Context MODE_WORLD_WRITEABLE);
lishixinzhi/Article/program/yd/201404/30438
android 将数据写入文件中并导出。
@Override
public void onClick(View view) {
String state = Environment.getExternalStorageState();//获取外部设备状态
//检测外部设备是否可用
if(!state.equals(Environment.MEDIA_MOUNTED)) {
Toast.makeText(this, "外部设备不可用", Toast.LENGTH_SHORT).show();
return;
}
//创建文件
File sdCard = Environment.getExternalStorageDirectory();//获取外部设备的目录
File file = new File(sdCard,"文件名.txt");//文件位置
try {
FileOutputStream outputStream = new FileOutputStream(file);//打开文件输出流
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));//写入到缓存流
writer.write("这里是要写入到文件的数据");//从从缓存流写入
writer.close();//关闭流
Toast.makeText(this, "输出成功", Toast.LENGTH_SHORT).show();
}
catch(Exception exception) {
Toast.makeText(this, "输出失败", Toast.LENGTH_SHORT).show();
}
}
写入到文件管理时需要权限
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/
Android 文件存储-将数据保存在data目录下
在平常使用Android手机的时候,我们都知道,几乎每一个app都在/data/data/相应的包名的文件夹下保存数据。那这些数据怎么进行保存的呢?在这里,将简单的介绍一下。
Context类中有一个openFileOutPut方法,这个方法可以将我们的数据保存在data目录下的文件里面。
openFileOutput(String name, int mode)方法中带两个参数,第一个参数是文件名,这里只能写文件的名字,不能包含路径,因为所有的数据都保存在/data/data/应用包名/files/目录下;第二个参数是文件的操作模式,有MDOE_PRIVATE,MODE_APPEND,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。-android文件数据写入
其中MODE_PRIVATE模式的是默认的操作模式,每一次写入的内容时,都会覆盖前面的内容;MODE_APPEND模式表示的是每次写入的内容追加在前面的后面;MODE_WORLD_READABLE表示的是其他应用程序可以对该文件进行写的操作;MODE_WORLD_WRITEABLE表示的是其他应用程序可以对该文件进行读的操作。不过在后面的两种模式过于危险,google已经在Android 4.2中废弃了。-android文件数据写入
openFileOutput()方法返回的是一个FileOutPutStream的对象,得到了这个对象,就可以使用Java的IO流来对文件的使用了。
点击保存过后,就会把我们的数据保存在data目录下。
如果我们想要查看的话,就可以在Android studio(我是2.3.2的版本)中找到Tools-Android-Android Device Monitor
再打开/data/data/应用包名/files/,发现有一个文件,就是我们之前创建的一个文件。
我们可以点击右上角的图标进行相应的导出工作,对相应的文件进行导出操作。
在Context类中,与openFileOutput方法对应的是openFileInput方法,用户从data目录读取相应的数据。这个方法相较于openFileOutput方法简单一些。
效果示意图: