.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存储和手机内部储存的更多相关文章

  1. Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  2. Android——数据存储:手机内部存储

    存取字符串和存取图片不相同 xml <EditText android:layout_width="match_parent" android:layout_height=& ...

  3. android-数据存储之手机内部file存储

    一.基础概要 1.说明: 1>应用程序运行需要一些较大的数据或者图片可保存在手机内部 2>文件类型:任意 3>路径:/data/data/packageName/files/ 4&g ...

  4. wemall app商城源码Android数据的SharedPreferences储存方式

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...

  5. andorid 手机外部储存

    .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  6. android数据储存之存储方式

    能够将数据储存在内置或可移动存储,数据库,网络.sharedpreference. android能够使用Content provider来使你的私有数据暴漏给其它应用程序. 一.sharedpref ...

  7. Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  8. Android数据存储之SharedPreferences存储

    安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...

  9. 【Android】数据的应用-使用sharedpreferences存储数据

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

随机推荐

  1. gdb 常用调试命令

    1.   file    quit 2.   frame bt 3.   finish 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数信息. until 当要退出在一个循环体 ...

  2. NFS 网络文件系统制作

    1. 构建根文件系统主要是建立相关的文件目录,以及各目录下相关的配置文件.管理工具等. 2. 首先创建文件目录. mkdir rootfs cd rootfs mkdir bin dev etc li ...

  3. tomcat修改上下文path

    server.xml <Host name="localhost" appBase="webapps" unpackWARs="true&quo ...

  4. Java的学习02

    今天依旧记录一下今天的学习的知识. /** * 测试StringBuilder StringBuffer,可变字符序列 * String对象称为“不可变对象"指的是对象内部成员变量的值无法再 ...

  5. DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用

    名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站.IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址.域名解析就是 ...

  6. NBU 还原LINUX ORACLE RAC数据库(MIDDB)

    MIDDB集群数据库恢复 目录 MIDDB集群数据库恢复... 1 1.安装 NBUcilent 1 2.修改hosts文件... 2 3.修改hosts文件... 2 4.使用bplis读取备份文件 ...

  7. 解题(JuZhengCalculate-矩阵乘法计算量)

    题目描述 矩阵乘法的运算量与矩阵乘法的顺序强相关. 例如: A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵 计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算 ...

  8. Pandas基本功能之算术运算、排序和排名

    算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA ...

  9. eclipse环境的搭建(转载)

    原文地址:http://hanqunfeng.iteye.com/blog/982182 此文章发表于2011年到2012年 使用eclipse真的有年头了,相信java程序员没有不知道它的,最近在给 ...

  10. pta l3-1(凑零钱)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805054207279104 题意:给定n枚硬币的面值,需要支付 ...