zoukankan      html  css  js  c++  java
  • 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(); } } }
    
    
    
     
  • 相关阅读:
    uniapp中uni.setNavigationBarTitle(OBJECT) 动态设置当前页面的标题。
    vuex的安装
    创建vue项目
    方法
    element-ui的tree组件的使用
    vue树形组件tree遇到的坑
    vuex持久化 vuex-persistedstate
    vuex持久化 vuex-persistedstate,解决刷新跳转到登录页的问题
    How to view file history in Git?
    浏览器里查看请求头
  • 原文地址:https://www.cnblogs.com/loaderman/p/6430760.html
Copyright © 2011-2022 走看看