Android的内部存储

路径:/data/data/包名/

this.getCacheDir() = /data/data/com.example.qq/cache/
getFilesDir()      = /data/data/com.example.qq/files/
特点:当系统存储空间不足时,会自动删除cache目录里的文件
      在应用层程序列表中点击清除数据就可以清除应用里所有的数据
直接操作流,files目录
this.openFileInput("config.txt");
this.openFileOutput("config.txt", 0);

1. 文件只能存储在自己应用程序私有的文件夹下,别的应用程序无法访问
2. this.getFilesDir() == /data/data/包名/files/
3. this.getCacheDir()==  /data/data/包名/cache/
4. this.openFileInput();
5. this.openFileOutput();
openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为: 
Context.MODE_PRIVATE    =  0
Context.MODE_APPEND    =  32768
Context.MODE_WORLD_READABLE =  1
Context.MODE_WORLD_WRITEABLE =  2

//实例代码qq登录,用内部存储存储qq账户和密码

package com.example.qq;
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText et_qq; private EditText et_psw; private CheckBox cb; private Button btn; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置布局 setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); et_qq = (EditText) findViewById(R.id.qq); et_psw = (EditText) findViewById(R.id.psw); cb = (CheckBox) findViewById(R.id.checkBox1); // 设置事件 readData(); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String qq = (String) et_qq.getText().toString().trim(); String psw = (String) et_psw.getText().toString().trim(); if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(psw)) { Toast.makeText(MainActivity.this, "QQ号码和密码不能为空", 0).show(); return; } String s = qq + "==" + psw; boolean flag = cb.isChecked(); try { if (flag) { FileOutputStream fos = openFileOutput("qq.txt", 0); fos.write(s.getBytes()); fos.close(); Toast.makeText(MainActivity.this, "成功保存", 0).show(); } } catch (Exception e) { e.printStackTrace(); Toast.makeText(MainActivity.this, "失败了", 0).show(); } } }); } private void readData() { try { FileInputStream fis = openFileInput("qq.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String s = br.readLine(); String[] split = s.split("=="); String qq = split[0]; String psw = split[1]; et_qq.setText(qq); et_psw.setText(psw); fis.close(); } catch (IOException e) { e.printStackTrace(); } } }

 

 

posted on 2017-02-22 20:13  LoaderMan  阅读(188)  评论(0编辑  收藏  举报

导航