当前位置:首页 > 开发 > 移动开发 > 正文

初涉Android之文件保存

发表于: 2013-12-21   作者:chinrui   来源:转载   浏览次数:
摘要: Android文件保存      一、Android的底层使用Linux内核,文件对文件所有者、与文件所有者同组的其它人、以及其它组的成员分别有可读、可写和可执行三种权限,具体可以参考《Linux私房菜》,当然,学习Android不需要了解这么多啊,在Android中,文件操作大致有四种操作模式,分别是MODE_PRIVATE、MODE_APPEND、MO

Android文件保存

     一、Android的底层使用Linux内核,文件对文件所有者、与文件所有者同组的其它人、以及其它组的成员分别有可读、可写和可执行三种权限,具体可以参考《Linux私房菜》,当然,学习Android不需要了解这么多啊,在Android中,文件操作大致有四种操作模式,分别是MODE_PRIVATE、MODE_APPEND、MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE等。

 

下面对于四种操作模式进行简单的介绍:

  • MODE_PRIVATE(私有操作模式):创建出来的文件只有本应用能够访问,其它应用不能访问,另外用私有操作模式生成的文件,写入文件的内容会覆盖以前已有的内容
  • MODE_APPEND(追加操作模式):创建出来的文件只有本应用能够访问,其它应用不能访问,另外用追加操作模式生成的文件,写入文件的内容会追加在以前文件的前面
  • MODE_WORLD_READABLE(可读操作模式):创建出来的文件所有应用都能够访问,另外用可读操作模式生成的文件,写入文件的内容会覆盖掉原来的内容,但是不能修改内容
  • MODE_WORLD_WRITEABLE(可写操作模式):创建出来的文件其它应用不能够访问,另外用可写操作模式生成的文件,写入文件的内容会覆盖掉原来的内容,其它应用也可以修改内容
public class FileService {
	private Context context = null;
	private static final String TAG = "FileService";
	
	public FileService(Context context) {
		this.context = context;
	}
	
	/*
	 * 私有操作模式保存文件
	 */
	public void savePrivate(String nameText, String contentText) throws IOException {
		OutputStream out = context.openFileOutput(nameText, Context.MODE_PRIVATE);
		Log.i(TAG,nameText);
		out.write(contentText.getBytes());
		out.close();
	}
	
	/*
	 * 追加操作模式保存文件
	 */
	public void saveAppend(String nameText, String contentText) throws IOException {
		OutputStream out = context.openFileOutput(nameText, Context.MODE_APPEND);
		Log.i(TAG,nameText);
		out.write(contentText.getBytes());
		out.close();
	}
	
	/*
	 * 可读操作模式保存文件
	 */
	public void saveReadable(String nameText, String contentText) throws IOException {
		OutputStream out = context.openFileOutput(nameText, Context.MODE_WORLD_READABLE);
		Log.i(TAG,nameText);
		out.write(contentText.getBytes());
		out.close();
	}
	
	/*
	 * 可写操作模式保存文件
	 */
	public void saveWritable(String nameText, String contentText) throws IOException {
		OutputStream out = context.openFileOutput(nameText, Context.MODE_WORLD_WRITEABLE);
		Log.i(TAG,nameText);
		out.write(contentText.getBytes());
		out.close();
	}
}

 二、文件的读取

读取文件的时候,如果读取文件是当前应用底下的文件可以使用Context对象来获得文件输入流,如果是读取其它目录的文件,自己创建一个文件读取流即可,读取相对比较简单,就不多做介绍。

/**
 * 读取文件内容
 * @param fileName 文件名
 * @return java.lang.String 返回文件内容
 * @throws IOException 抛出的IO流异常
 */
public String read(String fileName) throws IOException {
	InputStream is = context.openFileInput(fileName);
	byte[] buf = new byte[1024];
	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	int len = 0;
	while((len = is.read(buf)) != -1) {
		baos.write(buf , 0 , len);
	}
	is.close();
	byte[] res = baos.toByteArray();
	baos.close();
	return new String(res);
}
/**
 * 读取非当前应用底下的文件
 * @return java.lang.String 返回文件内容
 * @throws IOException 抛出IO流异常
 */
public String read() throws IOException {
	String path = PATH + fileName;
	File file = new File(path);
	FileInputStream fis = new FileInputStream(file);
	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	byte[] buf = new byte[1024];
	int len = 0;
	while((len = fis.read(buf)) != -1) {
		baos.write(buf , 0 , len);
	}
	byte[] result = baos.toByteArray();
	return new String(result);
}

 

三、保存文件到存储卡(简略介绍)

/**
 * 保存文件到存储卡设备
 * @param name 要保存的文件名
 * @param content 文件内容
 * @throws IOException 抛出IO流异常
 */
public void saveSdcard(String name, String content) throws IOException {
	File file = new File("/mnt/sdcard/" + name);
	FileOutputStream fos = new FileOutputStream(file);
	fos.write(content.getBytes());
	fos.close();
}

初涉Android之文件保存

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
星期二晚上回到寝室开始在eclipse上弄android开发,android对我来说是个新鲜的玩意,虽然玩手机游戏
鉴于国内Android蓝牙开发的例子很少,以及蓝牙开发也比较少用到,所以找的资料不是很全。 Android对
看到csdn博客上面其它大牛的系列性android博客,小弟确实十分羡慕。所以经过一番思想斗争后,小弟终
今天由于后期的需求研究了一下在Android Studio下面的NDK开发流程,以前使用Eclipse的时候也搭建过
SimpleAdapter无法自动适配BitMap 需求需要将一组图片和文字介绍通过GridView排列,我选择了SimpleAd
黑白棋,又称翻转棋,还有个说法叫奥赛罗棋,具体得名我并未去考 证。下棋方式很简单,是在游戏中通
Matlab——GUI初涉 MATLAB GUI教学视频0:GUI中的基本操作—在线播放—优酷网,视频高清在线观看 ht
云计算,是近年频繁在网络上出现的新词儿。每次看到的时候,总觉得就是一种特高级的技术,而没有深
刚开始接触linux内核,首先将linux内核进行编译,遇到一些问题,最后虽然解决了,但是还不是完全清
哎!清明节,真不好过,呆在寝室,可以说处于无奈,三天的假,下了两天的大雨,这叫人怎么不难受!
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号