android中文件的保存与读取以及文件的四种操作模式

示例的运行效果:



(1)将文件保存到手机空间

核心代码:

<span style="font-size:14px;">/**
	 * 将文件保存到手机空间中
	 * @param filename 文件名
	 * @param content	文件中的内容
	 * @throws Exception
	 */
	public void save(String filename, String content) throws Exception {
	    /**创建一个文件输出流对象,下面方法的第一个参数是文件名称,第二个参数是文件写入的操作模式,以下使用的是私有操作模式。
	    FileOutputStream outStream = context.openFileOutput(filename, Context.MODE_PRIVATE);
	    outStream.write(content.getBytes());</span>
<span style="font-size:14px;"><span style="white-space:pre">	</span>    outStream.close();	 
	}</span>

(2)将文件保存到SDCard中(一般保存比较大的文件)

<span style="font-size:14px;">/**
	 * 将文件保存到sd卡中
	 * @param filename	文件名
	 * @param content	文件中的内容
	 * @throws Exception
	 */
	public void saveToSDcard(String filename, String content) throws Exception {
		File file = new File(Environment.getExternalStorageDirectory(),filename);
		FileOutputStream outStream = new FileOutputStream(file);
		write(content, outStream);
		 
	}</span>


(3)文件的读取

<span style="font-size:14px;">/**
	 * @param filename 文件名
	 * @return 读取到的文件中的内容
	 * @throws Exception
	 */
	public String read(String filename) throws Exception{
	    //获取文件输入流对象,
	    FileInputStream inStream = context.openFileInput(filename);
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
	    byte[] buffer = new byte[1024];
	    /*将文件中的内容读取到一个字节数组中。注意:当文件内容很多时,我们需要读取多次,
            这时我们需要加一个判断语句,*/
	    int len = 0;
	    while((len=inStream.read(buffer)) != -1){
		//将每次读取出来的数据存到内存中,获取数组0-len范围内的数据
		outStream.write(buffer,0,len);
	    }
	    byte[] data  = outStream.toByteArray();
	    return new String(data);		
	}</span>
(4)文件的四种操作模式

将文件保存到手机内存中时,有四种操作模式。

Context.MODE_PRIVATE:创建出来的文件只能被本应用访问,写入文件的内容会覆盖原有文件。

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

Context.MODE_WORLD_READABLE模式:表示当前文件可以被其他应用读取
Context.MODE_WORLD_WRITEABLE模式:表示当前文件可以被其他应用写入

最后要注意要在AndroidManifest.xml中加入权限:

<span style="font-size:14px;"><!-- 在SDCard中创建与删除文件权限 -->
<uses-permission 
    android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 在SDCard中写入数据权限 -->
<uses-permission </span>
<span style="font-size:14px;">    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/></span>

下载源代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值