Android课程---关于数据存储的学习
activity_data1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.test5.DataActivity1"
android:orientation="vertical"> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_1"
android:hint="key"/> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_2"
android:hint="value"/> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="保存"
android:layout_weight="1"
android:onClick="bt1_OnClick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="读取"
android:layout_weight="1"
android:onClick="bt2_OnClick"/>
</LinearLayout> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_3"
android:hint="要存储的内容"/> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_4"
android:hint="从文件中读取的内容"/> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="保存"
android:layout_weight="1"
android:onClick="bt3_OnClick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="读取"
android:layout_weight="1"
android:onClick="bt4_OnClick"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="保存文件"
android:layout_weight="1"
android:onClick="bt5_OnClick"/> <Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="读取文件"
android:layout_weight="1"
android:onClick="bt6_OnClick"/>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vipflower"
android:id="@+id/iv_4"/>
</LinearLayout>
DataActivity1.java
package com.hanqi.test5; import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast; import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintStream; public class DataActivity1 extends AppCompatActivity { EditText et_1;
EditText et_2; EditText et_3;
EditText et_4; ImageView iv_4; SharedPreferences sp; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data1); et_1 = (EditText)findViewById(R.id.et_1);
et_2 = (EditText)findViewById(R.id.et_2); et_3 = (EditText)findViewById(R.id.et_3);
et_4 = (EditText)findViewById(R.id.et_4); iv_4 = (ImageView)findViewById(R.id.iv_4); //1.获取sp实例,指定了文件名和操作模式
sp = getSharedPreferences("mydata",MODE_PRIVATE); } //操作assets内的文件
public void bt5_OnClick(View v)
{
//1.获取AssetManager管理器
AssetManager am = getAssets(); try
{
//2.打开文件,获取输入流
InputStream is = am.open("yuantu.png"); //3.获取输出流
FileOutputStream fos = openFileOutput("yuantu.png",MODE_PRIVATE); //4.边读边写
byte[] b = new byte[1024]; int i =0; while ((i = is.read(b))>0)
{
fos.write(b,0,i);
}
fos.close();
is.close(); Toast.makeText(DataActivity1.this, "保存成功", Toast.LENGTH_SHORT).show(); }
catch (Exception e)
{
e.printStackTrace();
Toast.makeText(DataActivity1.this, "保存失败", Toast.LENGTH_SHORT).show();
}
} //从手机内部存储读图片文件
public void bt6_OnClick(View v)
{
//改变ImageView的图片来源,指向手机存储空间 //1.获取文件存储的绝对路径
String filepath = getFilesDir().getAbsolutePath(); //2.组合图片文件的完整路径
filepath += "/yuantu.png"; //3.生成位图实例
Bitmap bm = BitmapFactory.decodeFile(filepath); //4.改变ImageView的图片来源
iv_4.setImageBitmap(bm);
} //文件名
final String FILENAME = "test.txt";
public void bt3_OnClick(View v)
{
//1.获取要存储的内容
String content = et_3.getText().toString();
//2.获取输出流
try
{
FileOutputStream fos_1 = openFileOutput(FILENAME,MODE_APPEND); //3.构造PrintStream
PrintStream pm = new PrintStream(fos_1); //4.写入内容
pm.println(content); //5.关闭
pm.close(); fos_1.close(); Toast.makeText(DataActivity1.this, "保存成功", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
e.printStackTrace(); Toast.makeText(DataActivity1.this, "保存失败", Toast.LENGTH_SHORT).show();
}
} public void bt4_OnClick(View v)
{
try
{
//1.获取输入流
FileInputStream fis = openFileInput(FILENAME); //2.定义读取的数组
byte[] b = new byte[1024]; //3.读出的数据的长度
int i =0; StringBuilder sb_1 = new StringBuilder(); while ((i=fis.read(b))>0)
{
sb_1.append(new String(b,0,i) );
}
fis.close(); //设置显示读出内容
et_4.setText(sb_1); Toast.makeText(DataActivity1.this, "读取成功", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
e.printStackTrace();
Toast.makeText(DataActivity1.this, "读取失败", Toast.LENGTH_SHORT).show();
}
} //保存
public void bt1_OnClick(View v) {
//1.获取key和value
String key = et_1.getText().toString();
String value = et_2.getText().toString(); if (key.length() == 0 || value.length() == 0) {
Toast.makeText(DataActivity1.this, "key或value不能为空", Toast.LENGTH_SHORT).show();
}
else {
//2.取得Editor
SharedPreferences.Editor editor = sp.edit(); //3.放入键值对
editor.putString(key, value); //4.提交保存
boolean b = editor.commit(); if (b) {
Toast.makeText(DataActivity1.this, "保存成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(DataActivity1.this, "保存失败", Toast.LENGTH_SHORT).show();
}
}
}
//读取
public void bt2_OnClick(View v)
{ //1.获取要读的key
String key = et_1.getText().toString(); //2.读并设置文本框
et_2.setText(sp.getString(key, "没有发现key")); } }
数据存储总结之思维导图:

Android课程---关于数据存储的学习的更多相关文章
- Android课程---关于数据存储的学习(2)
手机外部存储的学习 activity_data2.xml <?xml version="1.0" encoding="utf-8"?> <Li ...
- Android课程---关于数据存储的学习(3)之数据库和事务
DataActivity3.java package com.hanqi.test5; import android.content.ContentValues; import android.dat ...
- Android课程---关于数据存储的学习之总结
- Android Learning:数据存储方案归纳与总结
前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...
- Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏
文件存储 这是本人(菜鸟)学习android数据存储时接触的有关文件存储的知识以及本人自己写的简单地demo,为初学者学习和使用文件存储提供一些帮助.. 如果有需要查看SharedPreference ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- Android中的数据存储
Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...
- Android五种数据存储方式
android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...
- Android下的数据存储与訪问 --- 以文件的形式
Android下的数据存储与訪问 --- 以文件的形式 1.1 储存文件存放在手机内存中: // *** 储存数据到 /data/data/包名/files/jxn.txt文件里 String dat ...
随机推荐
- Linux启动新进程的几种方法汇总
有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些 ...
- 更改CentOS 6.3 yum源为国内163源
CentOS5.x: http://mirrors.163.com/.help/CentOS5-Base-163.repo CentOS6.x: http://mirrors.163.com/.hel ...
- 逻辑回归LR
逻辑回归算法相信很多人都很熟悉,也算是我比较熟悉的算法之一了,毕业论文当时的项目就是用的这个算法.这个算法可能不想随机森林.SVM.神经网络.GBDT等分类算法那么复杂那么高深的样子,可是绝对不能小看 ...
- PHP Strom 配置less 并设置编译后在远程开发模式下自动上传css文件
ctrl+alt+s ->File Watchers->add-> 其中Argument中的-x代表最后编译过后的css文件为压缩过的 此时就可以用了,但是编译过后less可以自动上 ...
- 解决NetBeans 8.x的字体问题
笔者喜欢用 Consolas 编码,而NetBeans的默认字体是 Monospaced 13. 尽管可以通过"选项-字体和颜色-所有语言"改变默认的字体,比如 Consolas ...
- VC++ 产生GUID或UUID
GUID 和 UUID 是一样的,表示全球唯一标识码. 下面是Windows系统中,产生GUID的一种方法(Windows API) char* GUID_Generator() { ] = {}; ...
- linux升级openssh
升级sshd到OpenSSH-6.7并删除老版本ssh 1)升级前准备 查看是否缺包 # rpm -qa | egrep "gcc|make|perl|pam|pam-devel" ...
- Spring+SpringMvc+Mybatis框架集成搭建教程四(项目部署及测试)
在IDEA中将项目部署到本地Tomcat下进行运行并验证整合结果 (1).点击如下图所示的下拉按钮,弹出Edit Configurations...后点击该项. (2).跳出如下界面后,点击红框内的& ...
- xampp环境搭建+bugfree
一.xampp安装 1.下载xampp安装文件,下载地址:http://pan.baidu.com/s/1eSp5wVw 2.上传到Linux服务器,执行赋权并安装(我安装在/opt目录下) 3.安装 ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...