位置: 编程技术 - 正文

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

  • 增值税应纳税额的计算
  • 高档珍珠镶嵌
  • 研究经费怎么写
  • 营业收入与利润变化图
  • 已发货未收钱会计分录
  • 打印的电子发票需要盖章么
  • 个人股权激励收入申报
  • 汇款手续费的会计科目
  • 筹建期可以有收入吗
  • 冲销暂估入库
  • 债券投资损失准备累计已计提
  • 代扣代缴城建税可以享受六税两费
  • 管理费用和财务费用算营业成本吗
  • 发票已认证未抵扣怎么办
  • 取得特许权使用费收入增值税税率
  • 为什么要开增值税
  • 小微企业可以开9个点的专票吗
  • 财会〔2017〕22号:《企业会计准则第14号收入》的通知
  • 企业购进货物被没收 进项税额能否抵扣?
  • 资产和利润表的关系
  • 总公司与分公司的账务处理销售
  • 企业捐赠现金支出应在哪个项目反应
  • 中标费用由哪方出
  • 延期申报出口退税流程
  • 增值税小规模纳税人优惠政策
  • 季度利润
  • 苹果设置输入法在哪里设置
  • 反避税的意义
  • 在win10中显示我的电脑
  • 转售股票会计分录
  • 没结婚生了小孩分手了怎么办?
  • 土地增值税的收费标准
  • 前端毕业设计项目
  • netty websocket心跳
  • web数据可视化(Echars版)实训
  • 无法将node项识别为
  • 命令who的含义
  • 手把手的教
  • 承包安装工程活怎么接
  • 私人打款到对公账户要交税吗
  • js改变内容
  • 发票无法收回会计分录
  • 进项加计抵减对账怎么做
  • 安装防伪税控系统的方法
  • 企业专项资金购买固定资产
  • 公司法人转账到公司账户
  • 超过诉讼时效的法律后果
  • 收到股东投资如何做账
  • 行政单位年终奖的相关发放规定
  • 现金支票作用
  • 电子税务局自然人扣缴客户端
  • mysql备份与恢复数据库
  • mysql用中文字段
  • centos叫什么
  • win7一键升级到win10
  • ubuntu怎么禁用nouveau
  • vc运行程序exe停止工作怎么办
  • win7ie11如何降为ie8
  • win7系统怎么查看
  • xp系统插u盘没反应怎么解决
  • 两台mac怎么同步
  • ubuntu命令行调节音量
  • win7旗舰版如何进入bios
  • unix网络命令
  • win系统找回删除文件
  • 下载手游网
  • linuxvim编辑器的用法
  • 分析师:董明珠让格力为豪赌买单
  • shell根据时间获取文件
  • html页面头部
  • 批处理压缩
  • node.js中http模块和url模块的简单介绍
  • javascript 操作css
  • linux py
  • 轮廓模式
  • 发票换领
  • 廊坊银行辟谣了吗
  • 成品油消费税税目
  • 自然人电子税务局(扣缴端)怎么添加公司
  • 江苏省纳税信息查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设