Android中文件存储
来源:互联网 发布:中国国际贸易数据库 编辑:程序博客网 时间:2024/06/05 20:17
所有数据都是原封不动地保存到文件当中,因而它比较适合用于存储一些简单的文本数据或者二进制数据。
如果你想使用文件存储的方式来保存一些较为复杂的文本数据,就要定义一套自己的格式规范,这样方便于
之后将数据从文件中重新解析出来
文件存储的核心是:
Context中提供了
openFileOutput和openFileInput方法,
之后就利用java的个种流来进行读写操作就可以了。
openFileOutput(name, mode);
可以用于将数据存储到指定文件中,第一个参数是文件名
(不包括路径)文件默认存储到(File Explorer)/data/data/<packagename>/file/的目录下。
第二个参数是文件操作模式,有两种可选Context.MODE_PRIVATE和Context.MODE_APPEND
Context.MODE_PRIVATE是默认模式,当指定同样文件名的时候,所写的内容将会覆盖原文件中的内容
Context.MODE_APPEND则表示如果该文件已存在就往里面追加内容,不存在就创建新文件
openFileInput(name)
用于从文件中读取数据,只有一个参数就是文件名,然后系统就会自动到
/data/data/<packagename>/file/目录下加载这个文件并返回FileInputStream
对象,再用java流方式将数据读取出来就可以了
我写了一个例子核心代码如下:
public class MainActivity extends Activity {
private EditText edit_file;//输入要保存数据输入框
private EditText edit_zhanshishuju;//展示拿到的数据输入框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit_file=(EditText) findViewById(R.id.edit_file);
edit_zhanshishuju=(EditText) findViewById(R.id.edit_zhanshishuju);
}
/**
* 保存数据按钮
*
*/
public void btn_baocun(View v){
String editTextString=edit_file.getText().toString().trim();
saveData(editTextString);
}
/**
* 取出数据按钮
* 把取出来的数据显示到输入框中
*/
public void btn_quchu(View v){
//调用拿到数据方法
String inputText=load();
/* 判断文件中读到的数据是否为空
* TextUtils.isEmpty()是一个非常好的方法可以一次判断null和"";如果
* 是空就返回true
*
*/
if (!TextUtils.isEmpty(inputText)) {
edit_zhanshishuju.setText(inputText);
//调用setSelection把输入的光标移动到文本的末尾位置
edit_zhanshishuju.setSelection(inputText.length());
Toast.makeText(MainActivity.this, "数据去出成功", 10).show();
}
}
/**
* 存入数据
*/
public void saveData(String editTextString){
/*java中的流相对于程序,都是读入写出的原则
* */
FileOutputStream out=null;
BufferedWriter writer=null;
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(editTextString);
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭流
if (writer!=null) {
try {
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
/**
* 拿出数据
*/
public String load(){
FileInputStream in=null;
BufferedReader reader=null;
StringBuffer contentBuffer=new StringBuffer();
try {
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String line="";
while ((line=reader.readLine())!=null) {
contentBuffer.append(line);
}
} catch (Exception e) {
}finally{
if (reader!=null) {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return contentBuffer.toString();
}
}//class
如果没有明白下载我的例子
http://download.csdn.net/detail/zhaihaohao1/8337905
- Android中文件存储
- Android中文件存储笔记
- Android中文件的存储与访问
- android 中文件存储以及几种操作模式
- 对android默认存储路径中文件的读写
- Android中文件简单存储(写入 读取)
- android中文件操作
- android中文件下载
- Android中文件上传
- python中文件上传云存储解析
- Android中文件写入写出
- android中文件简单下载
- android 4中文件操作
- Android读取assets中文件
- 导出Android手机中文件
- Android 中文件的操作
- Android中文件常用指令
- android 删除sdcard中文件命令
- 内存共享
- custom view
- 资源收藏
- 双击退出应用程序
- 图解戴尔iDRAC服务器远程控制设置
- Android中文件存储
- 日期函数
- 快速查看用户表及表对应的相关约束
- JSLite实现 js数组数据交集$.intersect
- JSLite 与jQuery有着类似的api,模仿jQuery的语法规范,并不是100%的覆盖【官方文档】
- Linux查找并杀死僵尸进程
- 【Cocos2d-x】从C++过渡到Lua
- 最大子序列和的问题
- [NOI2014]动物园