数据存储基础

1.把数据存储到文件中

Android应用程序存储数据的方式

    1、保存到文件

    2、SQLite数据库

    3、内容提供者

    4、sharedproferrences保存数据

    5、网络

    /data/data/应用包名/info.txt

2.从文件中读取数据并显示到界面上

(1)把文件保存到当前应用程序的目录下的步骤:

    1、创建一个文件,目录/data/data/<包名>/文件名
    2、创建一个文件输出流,把数据写到文件上
    3、关闭输出流。
    代码:
         //保存数据
         File file = new File("/data/data/com.itheima.login/info.txt");
         FileOutputStream fos = new FileOutputStream(file);
         String info = qq + "##"+ pwd;
         fos.write(info.getBytes());

         fos.close();
         Toast.makeText(this, "保存数据成功", 0).show();

(2)读取文件中的数据,并显示到界面上

         @Override
         protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         et_qq = (EditText) findViewById(R.id.et_qq);

         et_pwd = (EditText) findViewById(R.id.et_pwd);

         cb = (CheckBox) findViewById(R.id.cb);

         //读取文件中的数据,并显示到界面上
         Map<String,String> map = readInfo(this);
         if(map != null){
         et_qq.setText(map.get("qq"));

         et_pwd.setText(map.get("pwd"));
            }

         }


/**
* 读取文件中的数据
* @param ctx
* @return
*/
public Map<String,String> readInfo(Context ctx){
String qq = "";
String pwd = "";
Map<String,String> map = new HashMap<String,String>();
try {
File file = new File("/data/data/com.itheima.login/files/info.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String info = br.readLine();

String[] array = info.split("##");
qq = array[0];
pwd = array[1];

map.put("qq", qq);

map.put("pwd", pwd);
return map;

} catch (Exception e) {
e.printStackTrace();
return null;
}


}

3.存储到SD卡(重点)

    异常信息:
    09-21 23:25:32.068: W/System.err(24718): java.io.FileNotFoundException: /storage/sdcard/info.txt: open failed: EACCES (Permission denied)
    步骤:

    1、 在SD卡上创建一个文件,

    2、创建一个输出流往sd卡上写数据
String data = "dsfdsae";

File file = new File(Environment.getExternalStorageDirectory(), "info.txt");

FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());

fos.close();

   3、在清单文件中添加访问SD卡的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

posted @ 2017-02-15 15:40  Calo-missile  阅读(159)  评论(0编辑  收藏  举报