Android中的文件存储技术

文件存储是每个系统都应该具有的功能,Android系统采用Java语言开发,所以它的文件存储功能基本上和J2SE一样的。为什么会引入文件存储?因为大文件、图片等我们若只存储在手机中很有限,一般都是用一个外存储设备进行存储。好了今天我们就讲讲用编程的方式在Android系统中进行存储。

文件存储的位置

一般文件默认存储在/data/data/<包>/files/***.***(针对我们开发的APK的时候),当然我们也可以存储在存储卡上(这个时候需要在androidManifest.xml 设定文件的操作权限)。

<!-- 在SDCard中创建与删除文件权限 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

openFileOutput()  写入  

    在Activity组件中提供了此方法用于写入文件数据,我们先看以下代码,再做解释:

public void store() {

try {

//获取文件的输出流

FileOutputStream out=this.openFileOutput("test.txt",Context.MODE_WORLD_READABLE);

//将界面上textboox1控件的值写入到输出文件流中

out.write(textboox1.getText().toString().getBytes());

//关闭文件流,数据保存成功

out.close();

} catch (FileNotFoundException e) {

return;

}

catch (IOException e){

return ;

}

}

从代码中我们可以看到openFileOutput()有两个参数,第一个是文件名,第二个则是文件的操作权限。它有以下操作权限:

Context.MODE_PRIVATE=0:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND;

Context.MODE_APPEND = 32768:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件;

Context.MODE_WORLD_READABLE = 1:表示当前文件可以被其他应用读取;

Context.MODE_WORLD_WRITEABLE= 2:表示当前文件可以被其他应用写入;

如果想需要有读写权限,需要将Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE表示。

 openFileInput() 读取

Activity组件提供了读取的方法,默认的文件在/data/data/<包>/files/下,实例代码如下:

public void onload()

{

try {

//文件输入流

FileInputStream in=this.openFileInput("test.txt");

ByteArrayOutputStream stream=new ByteArrayOutputStream();

byte[] buffer=new byte[1024];

int length=-1;

//读取数据并放在byte数组中

while((length=in.read(buffer))!=-1)   {

//写入byte文件流

stream.write(buffer,0,length);

}

stream.close();

in.close();

textboot1.setText(stream.toString());

} catch (FileNotFoundException e) {

e.printStackTrace();

}

catch (IOException e){

return ;

}

}

SDCard 数据存储

     前面已经讲到数据在存储到外部设备时候,需要设定其操作权限。以下的操作方式是我们在实际项目开发过程中常用到的。

//1.用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

//2.获取SDCard目录

File sdCardDir = Environment.getExternalStorageDirectory();

//3.在外部设备上创建 获取文件

File saveFile = new File(sdCardDir, “test.txt”);

//文件存储位置在/sdcard/test.txt

//等价于 File saveFile = new File("/sdcard/a.txt");

//4.文件输出流

FileOutputStream outStream = new FileOutputStream(saveFile);

//5.写入数据

outStream.write("test".getBytes());

//6.关闭文件输出流

outStream.close();

}

时间: 2024-11-05 18:57:09

Android中的文件存储技术的相关文章

Android中的文件存储

另见Android中的文件存储 一.前言 文件存储时Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中的,因此它比较适合用于存储一些简单的文本数据或二进制数据. 二.将数据存储到文件中 Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中. 可以看到,此方法接收两个参数,第一个即是文件的名字,这里不可以包含文件路径,所有的文件都是默认存储到/data/data//files/目录下的.

Android中的文件存储数据方式

转自以下文章: http://blog.csdn.net/zuolongsnail/article/details/6559338 http://blog.csdn.net/xiazdong/article/details/7687439 http://www.cnblogs.com/feisky/archive/2011/01/05/1926177.html 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方

Android中的文件存储练习

1 package com.example.filedemo1; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.ByteArrayOutputStream; 6 import java.io.File; 7 import java.io.FileInputStream; 8 import java.io.FileNotFoundException; 9 import jav

Android中通过进程注入技术修改广播接收器的优先级

前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broadcast 关于它的相关知识可以转战:http://blog.csdn.net/jiangwei0910410003/article/details/19150705 我们这里就不做太多解释了,现在来看一下问题: 知识前提 这篇文章和我之前介绍一篇文章: Andrdoid中对应用程序的行为拦截实现方

Android中的数据存储

Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedPreferences对象和SQLite数据库,它们的数据仅对创建它们的应用是可访问的. (比如,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE现在(since API 17)已经被标记为deprecated). 换句话说,它们不是共享的,如果需要在不同的应用之间

谈谈-Android中的接口回调技术

Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James对Android接口回调技术的理解(结合前人的知识和自己的实践). 使用一个比喻很形象地说明:客户端有个疑问打电话请教服务端,但服务端无法现场给出解答,相互之间约定:服务端一旦有答案,使用电话的方式反馈给客户端. 以上有三个主体:客户端.服务端和接口(方式). 接口回调的原理框图说明: Demo界面

Android中的文件读写总结

在Android中,文件主要分为两大类,内部存储和外部存储 内部存储的文件是程序私有的,分为普通文件和Cache文件 外部文件也可以是私有的,也可以是共有的,这要根据文件的目录位置来决定 共有文件可以用JAVA的文件处理方法来处理,但是内部文件必须用openfileinput或者openfileoutput来进行打开和关闭 在对SD卡上的文件进行操作之前需要先检查SD卡的状态(是否可读写,可访问等)

在android中读写文件

在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外部存储设备(SD卡) 在SD卡中读数据是不需要权限的,但是在SD卡中写数据是要权限的: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 读写文件的方式就是用的Java的文件

67.Android中的数据存储总结

转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d02ede7a741b45e801d74e#rd 本篇文章会帮助大家快速了解Android中各种数据存储机制的应用场景以及基本使用方法,力求在头脑中建立一个“目录”.有了这个目录,具体使用细节在实际应用时再查询文档即可得到. 0. 概述 Android为我们提供了以下存储机制: Shared Preferenc