andorid 数据储存、SharedPreferences存储和手机内部储存
.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.application3.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/da1"
android:id="@+id/iv_4"/> </LinearLayout>
.java
package com.hanqi.application3; 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 et1;
EditText et2;
EditText et3;
EditText et4; ImageView iv4;
SharedPreferences sp; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data1); et1=(EditText)findViewById(R.id.et_1);
et2=(EditText)findViewById(R.id.et_2); et3=(EditText)findViewById(R.id.et_3);
et4=(EditText)findViewById(R.id.et_4);
iv4= (ImageView)findViewById(R.id.iv_4);
//1.获取sp的实例,制定了文件名和操作模式 MODE_PRIVATE私有
sp = getSharedPreferences("mydata",MODE_PRIVATE); }
//操作assets内的文件
public void bt5_onClick(View v)
{
//1.获取AssetManager
AssetManager am = getAssets(); try{
//2.打开文件,获取输入流
InputStream is = am.open("denglu.jpg");
//3.获取输出流
FileOutputStream fos2 = openFileOutput("denglu2.jpg",MODE_PRIVATE);
//4.边度编写
byte[] bb2 = new byte[1024]; int ii2 = 0;
while ((ii2 = is.read(bb2))>0)
{
fos2.write(bb2,0,ii2);
} fos2.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 += "/denglu2.jpg";
//3.生成位图实例
Bitmap bm2 = BitmapFactory.decodeFile(filepath);
//4.改变ImageView的图片来源
iv4.setImageBitmap(bm2); }
//文件名
final String FILENAME = "test.txt"; public void bt3_onClick(View v)
{
//1.获取要存储的内容
String content = et3.getText().toString();
//2.获取输出流
try {
FileOutputStream fos1 = openFileOutput(FILENAME, MODE_APPEND);
//3.构造一个打印输出流
PrintStream pm1 = new PrintStream(fos1);
//4.写入内容
pm1.println(content); pm1.close(); fos1.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 fis1 = openFileInput(FILENAME);
//2.定义读取的数组
byte[] bt11 = new byte[1024];
//3.读出数据的长度 int ii = 0; StringBuilder bb1 = new StringBuilder ();
while ((ii = fis1.read(bt11))>0)
{
bb1.append(new String(bt11,0, ii));
} fis1.close();
//设置显示读出的内容
et4.setText(bb1); 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 = et1.getText().toString();
String value = et2.getText().toString();
if (key.length() ==0||value.length() == 0)
{
Toast.makeText(DataActivity1.this, "key或value不能为空", Toast.LENGTH_SHORT).show();
}
else { //2.取得Editor edit编辑器
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 = et1.getText().toString();
//2.读并设置文本框
et2.setText(sp.getString(key,"没有发现key")); } }
andorid 数据储存、SharedPreferences存储和手机内部储存的更多相关文章
- Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- Android——数据存储:手机内部存储
存取字符串和存取图片不相同 xml <EditText android:layout_width="match_parent" android:layout_height=& ...
- android-数据存储之手机内部file存储
一.基础概要 1.说明: 1>应用程序运行需要一些较大的数据或者图片可保存在手机内部 2>文件类型:任意 3>路径:/data/data/packageName/files/ 4&g ...
- wemall app商城源码Android数据的SharedPreferences储存方式
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...
- andorid 手机外部储存
.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- android数据储存之存储方式
能够将数据储存在内置或可移动存储,数据库,网络.sharedpreference. android能够使用Content provider来使你的私有数据暴漏给其它应用程序. 一.sharedpref ...
- Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- Android数据存储之SharedPreferences存储
安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...
- 【Android】数据的应用-使用sharedpreferences存储数据
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
随机推荐
- gdb 常用调试命令
1. file quit 2. frame bt 3. finish 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数信息. until 当要退出在一个循环体 ...
- NFS 网络文件系统制作
1. 构建根文件系统主要是建立相关的文件目录,以及各目录下相关的配置文件.管理工具等. 2. 首先创建文件目录. mkdir rootfs cd rootfs mkdir bin dev etc li ...
- tomcat修改上下文path
server.xml <Host name="localhost" appBase="webapps" unpackWARs="true&quo ...
- Java的学习02
今天依旧记录一下今天的学习的知识. /** * 测试StringBuilder StringBuffer,可变字符序列 * String对象称为“不可变对象"指的是对象内部成员变量的值无法再 ...
- DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站.IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址.域名解析就是 ...
- NBU 还原LINUX ORACLE RAC数据库(MIDDB)
MIDDB集群数据库恢复 目录 MIDDB集群数据库恢复... 1 1.安装 NBUcilent 1 2.修改hosts文件... 2 3.修改hosts文件... 2 4.使用bplis读取备份文件 ...
- 解题(JuZhengCalculate-矩阵乘法计算量)
题目描述 矩阵乘法的运算量与矩阵乘法的顺序强相关. 例如: A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵 计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算 ...
- Pandas基本功能之算术运算、排序和排名
算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA ...
- eclipse环境的搭建(转载)
原文地址:http://hanqunfeng.iteye.com/blog/982182 此文章发表于2011年到2012年 使用eclipse真的有年头了,相信java程序员没有不知道它的,最近在给 ...
- pta l3-1(凑零钱)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805054207279104 题意:给定n枚硬币的面值,需要支付 ...