内部存储文件读写

Rom内存

  • 存储内存,相当于电脑的硬盘
  • Android中专有名词:内部存储空间/internal storage
  • 内部存储空间是必须的,没有内部存储系统就不用运行,并且如果内部存储满了就不能再系统中安装新的应用
  • 存储空间大小不会超过2G,大于这个大小的内存空间一定是外部存储空间
  • 老式智能机自带的512M是内部存储空间,插入SD卡就是外部存储空间
  • 新一代智能机不支持插入SD卡,自带32G外部存储空间

SD卡

  • 外部存储,相当于电脑的移动硬盘
  • Android中专有名词:外部存储空间/external storage
  • 外部存储是可有可无的,一般情况是会有的

盘符路径

  Android中的内部存储盘符路径是:data/data/…

  系统会在该文件夹下为所有应用创建一个包名文件夹,这些文件夹就是应用的内专属存储空间,专门用来存放应用在使用过程中产生的一系列数据文件。

Toast提示框

  需要配合show()方法使用,

  Toast.makeText(ConText, text, duration).show()

  第三个参数决定提示框显示的时间,可以使用系统常量LENGTH_SHORT/LENGTH_LONG,分别表示3s和5s;也可以使用0和1;

路径api

  getFilesDir 返回包含data/data/<package name>/files路径的的File对象

  getCacheDir 返回包含data/data/<package name>/cache路径的File对象

  当内部存储空间的比较少的时候,cache文件件中的文件可能会被删除,但是也可能不会被删除,我们可以设置一个阀值(比如1MB)来确定cache文件夹清空的时间,阻止系统原生的不确定

上下文

getFilesDir是属于ContextWrapper的方法,ContextWrapper是Context的包装类,Context和ContextWrapper是差不多相同的

上下文是获取应用环境的全局环境信息(getFilesDir/getCacheDir)的一个接口,当然不同的环境使用上下文得到的结果不同。

结构

  • Context

    • ContextWrapper

      • ContextThemeWrapper    

        • Activity      

          • many other   

对象

  • FileOutputStream
  • FileInputStream
  • inputStream
  • BufferedRead

代码

 

 1     /**
 2      * 记住用户名和密码
 3      * @param view
 4      */
 5     public void login(View view){
 6         String name = et_name.getText().toString();
 7         String pass = et_pass.getText().toString();
 8
 9         CheckBox cb = (CheckBox)findViewById(R.id.cb);
10         if (cb.isChecked()) {
11             File file = new File(getCacheDir(), "info.txt");
12             try {
13                 FileOutputStream fos = new FileOutputStream(file);
14                 fos.write((name + "##" + pass).getBytes());
15                 fos.close();
16                 Toast.makeText(this, "登陆成功", 0).show();
17             } catch (Exception e) {
18                 e.printStackTrace();
19                 Toast.makeText(this, "登陆失败", 0).show();
20             }
21         }
22     }
23
24     /**
25      * 账号密码回显
26      */
27     public void readAccount(){
28         File file = new File(getFilesDir(), "info.txt");
29         if (file.exists()) {
30             try {
31                 FileInputStream fis = new FileInputStream(file);
32                 BufferedReader br = new BufferedReader(new InputStreamReader(fis));
33                 String text = br.readLine();
34                 String[] strings = text.split("##");
35                 et_name.setText(strings[0]);
36                 et_pass.setText(strings[1]);
37             } catch (Exception e) {
38                 e.printStackTrace();
39             }
40         }
41     }
时间: 2024-08-05 03:44:56

内部存储文件读写的相关文章

Android_内部存储文件的读写

内部存储文件即raw和assets项目文件夹下的文件,项目卸载时被删除. 四种文件操作模式 文件存储: public void save(String filename, String filecontent) throws Exception { //这里我们使用私有模式,创建出来的文件只能被本应用访问,还会覆盖原文件 FileOutputStream output = mContext.openFileOutput(filename, Context.MODE_PRIVATE); outpu

STM32 对内部FLASH读写接口函数

因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. 原理:先要把整页FLASH的内容搬到RAM中,然后在RAM中改动,然后擦除整页FLASH,再把改动后的内容写入原Flash页.下面程序调试通过. /******************************************************************************** Function Name  :

Android 在内部存储读写文件

文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码.界面如下: 1. 定义布局 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&

Android内部存储文件之数据读取

1:Android开发中,离不开对文件的操作,因为文件可以存储大量数据,掌握相关技术可以为开发带来许多便利,一下便是我们的应用在手机或者模拟器上的内部存储位置. 2:通过一个简单的程序实现对android应用的内部文件的读取操作,页面如下: 3:示例代码如下: package cativity.cyq.readwriteintemaldata; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; i

[nRF51822] 11、基础实验代码解析大全 &#183; 实验16 - 内部FLASH读写

 一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识: EN-nRF51D 开发板使用NRF51822 芯片为nRF51822-QFAA,如下图所示,共有256KBFLASH,256 页,页大小为1024 字节. NRF51822 内部FLASH 写流程如下: 三.代码解析: main: 1 int main(void) 2 { 3 ... 4 5

内部存储文件(读)

未进行优化的代码: 实现功能要点: 1. 当输入用户密码后点击登录时,首先判断是否勾选了复选框,若勾选了,将用户名.密码通过文件写的方法写入到内部存储info.txt中. 2. 当应用启动后,执行函数readAccount()函数,该函数通过文件读方法(只获取一行)并将该行字符串分割后显示在用户名和密码框中. 代码如下: package com.swust.intern; import java.io.BufferedReader; import java.io.File; import jav

【转】 android中的文件操作详解以及内部存储和外部存储

摘要 其实安卓文件的操作和Java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相对 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念

android中的文件操作详解以及内部存储和外部存储(转载)

原文链接:http://m.blog.csdn.net/article/details?id=17725989 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相对 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的ap

第五篇:使用无缓冲IO函数读写文件

前言 本文介绍使用无缓冲IO函数进行文件读写. 所谓的无缓冲是指该IO函数通过调用系统调用实现,其实系统调用内部的读写实现也是使用了缓冲技术的. 读写步骤 1. 打开文件 open 函数 2. 读写文件 read write 函数 3. 修改文件指针 lseek 函数 ( 可能和 2 交替进行 ) 4. 关闭文件 close 函数 代码示例 1 // 2 // 本程序往一个文件中写入一个整型数组 3 // 然后读取这个数组并输出 4 // 5 6 #include <unistd.h> 7 #