Android中文件存储

文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何格式化处理,
所有数据都是原封不动地保存到文件当中,
因而它比较适合用于存储一些简单的文本数据或者二进制数据。
如果你想使用文件存储的方式来保存一些较为复杂的文本数据,就要定义一套自己的格式规范,这样方便于

之后将数据从文件中重新解析出来

 

  文件存储的核心是:
  Context中提供了
  openFileOutputopenFileInput方法,
  之后就利用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










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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值