位置: 编程技术 - 正文

Android数据存储之文件(android数据存储实验报告)

编辑:rootadmin
文件 Android中对文件的操作和Java是一样的。Android系统中存储系统分为内部存储和外部存储两种 内部存储空间

推荐整理分享Android数据存储之文件(android数据存储实验报告),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android数据存储实验报告,android数据存储的方式,android数据存储实验报告,android数据存储的方式有哪几种?,android数据存储的方式有哪几种?,android数据存储的方式,android数据存储的方式有哪几种?,android数据存储的方式有哪几种?,内容如对您有帮助,希望把文章链接给更多的朋友!

RAM内存:运行内存,相当于电脑的内存。

ROM内存:存储内存,相当于电脑的硬盘

在ROM内存中写写数据不需要权限

在Android中,组件之间不能相互转换EditText不能转换成EditText

案例记住登录用户名和密码:

<LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

>

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@&#;id/name"

android:hint="请输入用户名:" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@&#;id/password"

android:password="true"

android:hint="请输入密码:" />

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="match_parent"

>

<Button

android:id="@&#;id/login"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:text="登录"

android:onClick="login"/>

<CheckBox

android:id="@&#;id/check"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@&#;id/login"

android:layout_alignBottom="@&#;id/login"

android:layout_centerVertical="true"

android:text="记住用户名" />

</RelativeLayout>

</LinearLayout>

package com.test.storage;

import java.io.BufferedReader;

import java.io.File;

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.view.View;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_name = null;

private EditText et_password = null;

privateString name ="";

privateString password="";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//全局变量的初始化,最好放在onCreate方法中

//不要提前获取组件的&#;,有可能会导致下一次使用时&#;改变或者为空

/*et_name = (EditText) this.findViewById(R.id.name);

et_password = (EditText) this.findViewById(R.id.password);

name = et_name.getText().toString().trim();

password = et_password.getText().toString().trim();*/

et_name = (EditText) this.findViewById(R.id.name);

et_password = (EditText) this.findViewById(R.id.password);

try {

readInfo();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void login(View v) throws IOException{

name = et_name.getText().toString().trim();

password = et_password.getText().toString().trim();

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

//判断checkbox是否被选中

if (cb.isChecked()) {

//内部存储空间的路径data/data/包名 在RAM

//最好通过上下文Context可以获取上下文的环境信息,getFilesDir():/data/data/当前包名.apirwinfrom/files/文件名

//File file = new File(getFilesDir(), "userinfo.txt");

//这种方式不好,当包名一旦改变,就会报异常。

File file = new File("data/data/com.test.storage/info.txt");

if (!file.exists()) {

file.createNewFile();

}

FileOutputStream fos = new FileOutputStream(file);

fos.write((name&#;" "&#;password).getBytes());

fos.flush();

fos.close();

}

//创建弹出对话框,参数:上下文内容 文本内容 显示时间

Toast.makeText(this, "登录成功",Toast.LENGTH_SHORT).show();

}

public void readInfo() throws IOException{

File file = new File("data/data/com.test.storage/info.txt");

if(file.exists()){

FileInputStream fis = new FileInputStream(file);

BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String line = null;

line = br.readLine();

String[] userInfo = line.split(" ");

et_name.setText(userInfo[0]);

et_password.setText(userInfo[1]);

Android数据存储之文件(android数据存储实验报告)

}

}

}

当手机内部存储空间不足时,Cache中文件会被删除。重要的信息不要保存在Cache中。网络中的照片可以保存在Cache中。

清空缓存是清空Cache文件夹下的所有内容。

清空数据是清空应用程序独立空间下的所有内容,包括缓存。

外部存储空间

sdcard:相当于电脑的移动硬盘

sdcard的位置:

Android2.3之前,sdcard路径:在根目录下sdcard文件夹

Android4.3版本之前,sdcard路径:mnt/sdcard

Android4.3开始,sdcard路径:storage/sdcard

为了兼容低版本的程序,Android在之前各个版本的sdcard目录下都留下了快捷方式,指向storage/sdcard

在外部存储空间写文件,需要添加权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 在sdcard中读数据不需要权限。

如果用户选择了保护sdcard的选项,则读取sdcard的文件上的数据,也是要权限的。

android.permission.READ_EXTERNAL_STORAGE

package com.test.storage;

import java.io.BufferedReader;

import java.io.File;

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.os.Environment;

import android.view.View;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_name = null;

private EditText et_password = null;

String name = "";

String password = "";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 全局变量的初始化,最好放在onCreate方法中

// 不要提前获取组件的&#;,有可能会导致下一次使用时&#;改变或者为空

/*

* et_name = (EditText) this.findViewById(R.id.name); et_password =

* (EditText) this.findViewById(R.id.password); name =

* et_name.getText().toString().trim(); password =

* et_password.getText().toString().trim();

*/

et_name = (EditText) this.findViewById(R.id.name);

et_password = (EditText) this.findViewById(R.id.password);

try {

readInfo();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void login(View v) throws IOException {

name = et_name.getText().toString().trim();

password = et_password.getText().toString().trim();

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

// 判断checkbox是否被选中

if (cb.isChecked()) {

// 这种方式不好,当包名一旦改变,就会报异常。

// File file = new File("sdcard/info.txt");

// 使用sdcard之前必须要检测sdcard的状态

/**

* MEDIA_REMOVED:sdcard不存在 MEDIA_UNKNOWN:不能识别sdcard

* MEDIA_UNMOUNTED:sd存在但是没有挂载上 MEDIA_MOUNTED :sdcard已经挂载,可正常使用

* MEDIA_MOUNTED_READ_ONLY:sdcard只读 MEDIA_CHECKING:sdcard正在准备

*/

if (Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED)) {

// 最好通过上下文Context可以获取上下文的环境信息,返回的是sdcard的真实路径

File file = new File(Environment.getExternalStorageDirectory(),

"userinfo.txt");

if (!file.exists()) {

file.createNewFile();

}

FileOutputStream fos = new FileOutputStream(file);

fos.write((name &#; " " &#; password).getBytes());

fos.flush();

fos.close();

}

} else {

Toast.makeText(this, "sdcard不可以用", Toast.LENGTH_SHORT);

}

// 创建弹出对话框,参数:上下文内容 文本内容 显示时间

Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();

}

public void readInfo() throws IOException {

// File file = new File("sdcard/info.txt");

if (Environment.getExternalStorageState().equals(

Environment.MEDIA_MOUNTED)) {

File file = new File(Environment.getExternalStorageDirectory(),

"userinfo.txt");

if (file.exists()) {

FileInputStream fis = new FileInputStream(file);

BufferedReader br = new BufferedReader(new InputStreamReader(

fis));

String line = null;

line = br.readLine();

String[] userInfo = line.split(" ");

et_name.setText(userInfo[0]);

et_password.setText(userInfo[1]);

}

}

}

}

android camera setParameters failed 类问题分析总结 LOG显示为:-::.EAndroidRuntime:FATALEXCEPTION:CameraHandlerThread-::.EAndroidRuntime:Process:com.android.camera,PID:-::.EA

android 通过蓝牙和设备通信 收发数据 这边由于我不知道我们公司的设备代码怎么设计的,所以不太清楚通用性如何,不过一般而言应该差不多吧。首先我自定义了一个蓝牙连接管理的类,

Eclipse Hover 提示过快 首先问题来了:当我们的鼠标移动到IOException的时候,就会快速的弹出提示框。放上去的速度几乎是一秒就显示了,对于我们开发者来说,这样会多多少

标签: android数据存储实验报告

本文链接地址:https://www.jiuchutong.com/biancheng/383320.html 转载请保留说明!

上一篇:android布局layout中的一些属性(android布局背景颜色的代码)

下一篇:android camera setParameters failed 类问题分析总结

  • 个税汇算清缴系统找不到扣缴义务人
  • 视同销售增值税申报表怎么填写
  • 怎么修改金税盘登录密码
  • 销售收入不含税怎么计算增值税额
  • 车辆购置税如何计算
  • 代第三方收取的款项作为什么处理
  • 固定资产盘盈影响所有者权益吗
  • 其他综合收益影响递延所得税负债吗
  • 去年的财务报表可以更正申报吗
  • 建筑施工企业涉税问题
  • 房地产企业增值税纳税义务发生时间
  • 异地成立分公司
  • 土地增值税扣除系数
  • 实际利率法的计算过程
  • 残保金上年在职工资总额
  • 补开发票怎么做分录?
  • 商场预付卡是什么意思
  • 原材料采用实际成本法核算
  • 被辞退还有退休金吗
  • 股权转让的违约条款
  • 离职补偿金需要交工会经费吗
  • 电梯的运行与维护
  • 职工福利费为什么是14%
  • 专用发票百万元版申请要求
  • 未开发票申报
  • 上年度多计提的工资怎么冲减
  • 工业厂房的辅助用房
  • 工会经费返还账务处理,另记账么
  • 哪些票据可以冲抵增值税
  • 事业单位 会计
  • win10应用商店下载的软件在哪
  • 购买交易性金融资产时,支付的交易费用应计入
  • iphone6s显示4g却无法上网
  • 注销税务时其他应付款的账务处理
  • 收到保险公司的赔款计入什么科目
  • 企业研发费用的归集
  • zend framework手册
  • 资产评估中折现怎么算
  • 公司购买土地建厂房怎么入账
  • cakephp菜鸟教程
  • 印花税是1%吗
  • phpcms v9安装教程
  • 工程物资的税率怎么算
  • 财政补助结转的会计科目
  • 固定资产加速折旧是什么意思
  • access如何设置宏的功能
  • 增值税发票有哪些项目
  • 普通征税差额征税和减按征税
  • 私车公用属于违反什么纪律
  • 城投公司是什么东西
  • 暂估成本结转后需要冲回吗
  • 买入返售金融资产属于金融资产吗
  • 贴现利息收入的账务处理
  • 分类法与品种法相比,最大的区别是
  • 外经证的办理流程
  • 外汇账户具体包括哪些
  • 审计测试会计分录怎么做
  • 小规模纳税人如何计算增值税
  • 房地产企业成本控制存在的问题及对策
  • vcspawn.exe什么意思
  • Win7 64位旗舰版中让SSD固态硬盘更快的优化方法
  • win10系统如何快速打开控制面板
  • ubuntu获取当前路径
  • 苹果mac系统中英文切换
  • 禁用windows installer没有用
  • sgmain.exe - sgmain是什么进程 有何作用
  • win102020h2版本
  • win8 资源管理器
  • 搭建android开发环境时为什么要先安装jdk
  • Node.js中的事件循环是什么意思
  • string剪切
  • 设置拉我进群必须经过我同意
  • jquery悬浮窗
  • shell中判断字符串
  • django forms.py
  • 动态创建类对象
  • python随机数random.choice
  • javascript面向对象精要pdf
  • 江苏省国税局客服电话
  • 文件清理规则
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设