安卓数据存储1--文件存储

来源:互联网 发布:普通话软件 编辑:程序博客网 时间:2024/06/05 15:00

                                                     安卓数据持久化存储1--文件存储


     适用情况:简单的文本数据

     用到技术:读取和写入涉及到java 的Io流


     一。将数据存到文件中


   默认地址是手机内存(区别于sd卡)中的/data/data/<package name>/files/目录下。此      地址可以在DDMS中的File explorer中找到.

  Context 类中提供了一个方法用于将数据存到指定文件中,就是openFileOutput()方法。这个方法接受2个参数,一个是文件名(注意不是路径名,因为路径已经默认好了,文件名会在默认路径名下),一个是操作参数,有2个,MODE_PRIVATE和MODE_APPEND.前一个表示当指定同样文件名的时候,写入的内容会覆盖原文件中的内容,后面一个是在原文件内容后面追加内容(APPEND是附加的意思)。


代码如下:

  界面代码:



 

MainActivity:









二、从文件中读取数据

这里用到Context类中的另外一个方法openFileInput()方法,这里参数只有一个,就是文件名,系统根据文件名能在默认的路径中找到文件。


在上面例子基础上添加代码:



 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit=(EditText) findViewById(R.id.edit);
        String inputText=load();
        if(!TextUtils.isEmpty(inputText)){
        edit.setText(inputText);
        edit.setSelection(inputText.length());
        Toast.makeText(this, "Restoring successded", Toast.LENGTH_SHORT).show();
        }
        }

 public String load(){
    FileInputStream in=null;
    BufferedReader reader=null;
    StringBuilder content=new StringBuilder();
    try {

    in=openFileInput("data1");
    reader=new BufferedReader(new InputStreamReader(in));
    String line="";
    while((line=reader.readLine())!=null){
    content.append(line);
    
    }
} catch (Exception e) {
// TODO: handle exception
}finally{
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
     return content.toString();
    }
   
     public String load(){
    FileInputStream in=null;
    BufferedReader reader=null;
    StringBuilder content=new StringBuilder();
    try {

    in=openFileInput("data1");
    reader=new BufferedReader(new InputStreamReader(in));
    String line="";

//realLine()方法会逐行读取,当读到末尾行时会等于null。
    while((line=reader.readLine())!=null){
    content.append(line);
   
    }
} catch (Exception e) {
// TODO: handle exception
}finally{
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
    return content.toString();
    }
   
    
}

}




0 0
原创粉丝点击