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 = 0Context.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(); } } }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!