位置: 编程技术 - 正文

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 类问题分析总结

  • 个税退付手续费是单位所得吗
  • 每月工资不一样怎么交党费
  • 备案办税人员信息填本人的有风险吗
  • 财务台账包含什么
  • 发票上的金额是什么字体
  • 单一窗口报关单
  • 航空运单能当发票使用吗
  • 外购无形资产的相关税费包括增值税吗
  • 收购公司固定资产注意事项
  • 房地产开发企业销售自行开发的房地产项目
  • 变更许可证情况说明书模板
  • 促销赠品的会计处理
  • 个人终止投资经营怎么办
  • 公益性捐赠需要缴纳增值税吗
  • 建筑企业甲供材税收筹划
  • 对外出租设备
  • 超过认证期限的发票还能认证吗
  • 公司借出的私人物品
  • 微信支付宝收款码二合一
  • php错误日志
  • ajax无刷新技术
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 跨年的定额发票可以用吗
  • 一只躺在沙滩上的鸟
  • php that
  • 不合规发票入账违反了什么纪律
  • 办理房屋租赁需要的材料
  • vue组件继承并重写属性方法
  • framework在哪里打开
  • 农民工的职业培训
  • edge浏览器about:flags
  • php 断点续传
  • 解决php程序运行问题
  • 注意力机制加在CNN的什么位置
  • vue 如何使用
  • vue中key
  • 购物赠品的相关法律
  • 税务网如何填三方协议
  • 非流动资产处置计入什么科目
  • wordpress 自动生成文章
  • mysql主要支持哪些数据类型?
  • 收保险公司工伤怎么赔偿
  • 银行存钱转账
  • 增值税扣税凭证不包括
  • 弥补以前年度亏损是季度申报的时候做吗
  • 电子发票怎么开具流程呢?
  • 什么情况下企业亏损但继续生产
  • 劳务派遣人员代招聘多少钱一个人
  • 购入软件的账务处理
  • 事业单位利息收入
  • 跨年暂估成本会计分录
  • 加油预付卡发票新规定文件
  • 劳务支出如何做账
  • sqlalchemy merge
  • mysql5.6解压版安装教程
  • mysql unique作用
  • win8系统安装office2010
  • ubuntu如何读
  • 如何卸载centos7
  • kvm支持的系统
  • win10如何清除系统
  • win1020h2无法重启
  • gzip与zip
  • unity ar sdk
  • js里的this指向
  • vbs和批处理区别
  • perl中use的用法
  • jquery animate源码
  • 用jQuery.ajaxSetup实现对请求和响应数据的过滤
  • bash scp command not found的解决方法
  • python调用cuda执行加法
  • vue怎么做兼容
  • jquery中的事件和事件处理有哪些
  • nodejs如何安装
  • javascript中变量的命名规则有哪些?
  • h5实现微信分享
  • 怎么知道税控盘有没有注销
  • 衡水市地税局
  • 内蒙古一般纳税人查询网
  • 从国外寄电吉他要多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设