文档章节

android 保存和读取文件

milin
 milin
发布于 2014/12/15 23:34
字数 454
阅读 15
收藏 1
package com.pdsu.file;

import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import android.content.Context;
import android.os.Environment;

/**
 * 文件服务类
 * 
 * @author huangyinge
 * 
 */
public class FileService {
	private Context context;

	public FileService(Context context) {
		super();
		this.context = context;
	}

	/**
	 * 文件保存
	 * 
	 * @param fileName
	 *            文件名称
	 * @param fileContent
	 *            文件内容
	 *            
	 *            Context.MODE_PRIVATE
	 *            	Private方式创建的文件只能被本应用访问,每次都会创建一个新的文件,如果文件存在就覆盖原来的文件
	 *            Context.MODE_APPEND
	 *               APPEND 方式创建的文件,文件也只能被本应用访问,如果文件存在就在文件的末尾添加内容,如果不存在就创建一个新的文件
	 *            Context.MODE_WORLD_READABLE
	 *                创建的文件其他应用程序可以读取该文件  ,但不能写入
	 *            Context.MODE_WORLD_WRITEABLE
	 *            	创建的文件可以被其他应用程序写入数据,但不能读取数据
	 *            
	 *            Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE
	 *            	将会允许其他应用程序读取和写入数据
	 */
	public boolean savePrivate(String fileName, String fileContent) {
		return save(fileName,fileContent,Context.MODE_PRIVATE);
	}
	//追加内容
	public boolean saveAppend(String fileName, String fileContent) {
		return save(fileName,fileContent,Context.MODE_APPEND);
	}
	//可写入
	public boolean saveWriteable(String fileName, String fileContent) {
		return save(fileName,fileContent,Context.MODE_WORLD_WRITEABLE);
	}
	//可读取
	public boolean saveReadable(String fileName, String fileContent) {
		return save(fileName,fileContent,Context.MODE_WORLD_READABLE);
	}
	//保存文件到sdcard
	public boolean saveToSdcard(String fileName, String fileContent) {
		boolean flag = false;
		try { 
			FileOutputStream fos = new FileOutputStream(
					Environment.getExternalStorageDirectory()+File.separator+fileName,true);
			flag = write(fileContent, fos);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}
	/**
	 * 保存文件
	 * @param fileName 指定文件名
	 * @param fileContent 文件内容
	 * @param mode 文件模式
	 * @return
	 */
	public boolean save(String fileName, String fileContent,int mode) {
		boolean flag = false;
		try {
			FileOutputStream fos = context.openFileOutput(fileName,
					mode);
			flag = write(fileContent, fos);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return flag;
	}
	private boolean write(String fileContent, FileOutputStream fos)
			throws IOException {
		boolean flag;
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
		bw.write(fileContent);
		bw.flush();
		bw.close();
		flag = true;
		return flag;
	}
	/**
	 * 读取文本内容
	 * @param fileName 文件名称
	 * @return 
	 */
	public String read(String fileName){
		String content = "";
		try {
			FileInputStream fis = context.openFileInput(fileName);
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			int len  = 0;
			byte buf[] = new byte[1024];
			while((len = fis.read(buf))!=-1){
				bos.write(buf, 0, len);
			}
			fis.close();
			content = bos.toString();
			bos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return content;
	}
}

本文转载自:http://blog.csdn.net/afgasdg/article/details/7111075

milin
粉丝 10
博文 94
码字总数 19598
作品 0
郑州
高级程序员
私信 提问
android之SharedPreferes

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提...

晨曦之光
2012/05/16
154
0
Android利用Http下载文件

Android利用Http下载文件 一、场景 下载存文本文件和下载如mp3等大容量的文件 界面 二、代码编写 1.AndroidMainfest.xml中配置 主要是解决网络权限和写SDCard的权限 Java代码 <?xml version=...

丁佳辉
2015/09/23
116
0
android基础知识07:SharedPreferences和PreferenceActivity

本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法。 主要资料来源于网络,包括但不限于: 《Android之PreferenceActivity》 《在Android中Preferences数据存储的使用》 ...

迷途d书童
2012/03/23
8.7K
1
Android_6.数据存储1_文件存储

本文是以Android Studi为开发工具,<> 为学习指导书籍的学习记录 6.1 数据的持久化技术 数据持久代就是指那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据...

橄榄工作室
2018/05/22
0
0
opencv videowriter 向android开发板保存录制的视频 无法创建视频文件

情况是这样的, 从摄像头获取到的视频, 经过opencv的处理后, 通过使用 opencv的 videoWriter 创建一个视频流, 将获取到的mat数据保存在android开发板上, 但是发现在android开发板上 vide...

倔强的小蚂蚁
2016/12/28
786
1

没有更多内容

加载失败,请刷新页面

加载更多

重新开始学Java——反射

概念 reflection:自省 反射:镜子可以反射阳光一个java类 或 对象 通过照"镜子"来认知自己 Java语言中是怎么实现照镜子? java.lang.reflect 包 提供了"照镜子"API(应用程序接口) 如果要...

大家都是低调来的
5分钟前
1
0
爬取720万条城市历史天气数据

内容爬虫完毕,校验完毕,缺失信息暂未统计。总数据720万,地区3200个,年份从2011-2019,大小950Mb,原始数据已丢失,需要的朋友可以自己运行脚本挂一晚上。中间遇到了很多坑,有机会我再写...

八音弦
8分钟前
2
0
python的字典类型

1、新建字典 通过键值对 dict_1 = {'a':1,'b':2,'c':3} 通过dict()函数 list_1 = ['adam', 'bob', 'cathy', 'david', 'emma'] list_2 = [1,2,3,4,5] dict_2 = dict(zip(list_1,list_2)) 2、字......

davidwbnu
10分钟前
1
0
springcloud vue.js 前后分离 activiti工作流

本商品为 :springcloud + Springboot 微服务\分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + ...

java框架开发者
17分钟前
6
0
【jQuery基础学习】07 jQuery表单插件-Form

本文转载于:专业的前端网站➦【jQuery基础学习】07 jQuery表单插件-Form 作用:jQuery Form插件的作用是为了让我们可以很方便地用ajax的方式提交表单,从而使我们提交表单的时候页面不用进行...

前端老手
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部