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

layout文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp3.MainActivity"
11     android:orientation="vertical">
12
13     <TextView
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="Hello World!"
17         android:id="@+id/tv_1"/>
18     <Button
19         android:layout_width="match_parent"
20         android:layout_height="wrap_content"
21         android:text="SP存储"
22         android:onClick="bt_onClick"/>
23     <Button
24         android:layout_width="match_parent"
25         android:layout_height="wrap_content"
26         android:text="SP读取"
27         android:onClick="bt1_onClick"/>
28     <EditText
29         android:layout_width="match_parent"
30         android:layout_height="wrap_content"
31         android:hint="请输入……"
32         android:id="@+id/et_1"/>
33     <Button
34         android:layout_width="match_parent"
35         android:layout_height="wrap_content"
36         android:text="写内部文件"
37         android:onClick="bt2_onClick"/>
38     <Button
39         android:layout_width="match_parent"
40         android:layout_height="wrap_content"
41         android:text="读内部文件"
42         android:onClick="bt3_onClick"/>
43 </LinearLayout>

java类:

  1 package com.hanqi.testapp3;
  2
  3 import android.content.SharedPreferences;
  4 import android.os.Bundle;
  5 import android.support.v7.app.AppCompatActivity;
  6 import android.view.View;
  7 import android.widget.EditText;
  8 import android.widget.TextView;
  9 import android.widget.Toast;
 10
 11 import java.io.File;
 12 import java.io.FileInputStream;
 13 import java.io.FileOutputStream;
 14 import java.io.PrintStream;
 15
 16 public class MainActivity extends AppCompatActivity {
 17
 18     EditText et_1;
 19     TextView tv_1;
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_main);
 24         et_1 = (EditText)findViewById(R.id.et_1);
 25         tv_1 = (TextView)findViewById(R.id.tv_1);
 26     }
 27     public void bt_onClick(View v)        //SharedPreferences存储
 28     {
 29         //1.得到SharedPreferences对象
 30         SharedPreferences sharedPreferences = getSharedPreferences("abc", MODE_APPEND);
 31         //2.得到编辑器
 32         SharedPreferences.Editor editor =sharedPreferences.edit();
 33         //3.使用Editor添加数据
 34 //        editor.putString("a","abcdef");
 35 //        editor.putLong("long",12345);
 36         editor.remove("a");
 37         //4.提交保存
 38         editor.commit();
 39         Toast.makeText(MainActivity.this, "保存数据成功", Toast.LENGTH_SHORT).show();
 40     }
 41     //读取
 42     public void bt1_onClick(View v)
 43     {
 44         SharedPreferences sp = getSharedPreferences("abc",MODE_PRIVATE);
 45         String str = sp.getString("a", "默认值");
 46         Toast.makeText(MainActivity.this, "key = a"+" value = "+str, Toast.LENGTH_SHORT).show();
 47     }
 48     //写内部文件(手机内部文件存储)
 49     public void bt2_onClick(View v)
 50     {
 51         //从内存里写入文件
 52         //1.得到内部的存储目录
 53         try {
 54             File file = getFilesDir();
 55             String path = file.getAbsolutePath();
 56             Toast.makeText(MainActivity.this, "path = "+path, Toast.LENGTH_SHORT).show();
 57             //2.用输出流写入文件
 58             FileOutputStream fos = openFileOutput("test.txt",MODE_APPEND);
 59             //3.写入文件内容
 60             PrintStream ps = new PrintStream(fos);
 61
 62             String str = et_1.getText().toString();
 63
 64             ps.print(str);
 65 //            ps.print("测试");
 66 //            ps.println("自动换行");
 67             ps.close();
 68
 69             fos.close();
 70             Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
 71         }
 72         catch (Exception e)
 73         {
 74             Toast.makeText(MainActivity.this, "保存失败", Toast.LENGTH_SHORT).show();
 75         }
 76
 77     }
 78     public void bt3_onClick(View v)
 79     {
 80         try {
 81             //输入流
 82             FileInputStream fis = openFileInput("test.txt");
 83             //1.定义byte[]
 84             byte[] b = new byte[1024];
 85             int i = 0;//读到的数据长度
 86             String str1 = "";
 87             //2.循环读
 88             while ((i = fis.read(b))>0)
 89             {
 90                 String str = new String(b,0,i);
 91                 str1 += str;
 92             }
 93             fis.close();
 94             tv_1.setText(str1);
 95         }
 96         catch (Exception e)
 97         {
 98
 99         }
100     }
101 }
时间: 2024-11-03 03:37:06

Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)的相关文章

数据存储——手机内部文件存储

一.特点 1.存储的是任意类型的文件 2.使用IO输入输出流操作文件 3.存放的目录:/data/data/包名/files/ 4.可以设置不被其他应用操作 5.应用卸载之后,数据同时被删除 二.API 1.FileOutputStream  文件输出流 1-openFileOutput(文件名,操作模式) mode  操作模式 1>MODE_PRIVATE,不能被别的应用访问,覆盖模式 2>MODE_APPEND,不能被别的应用访问,追加模式 2-close( )关闭输出流 2.PrintS

手机内部文件存储——assets目录

一.创建 1./src/main/assets 2.切换到Project视图模式,在main下新建文件夹assets 二.特点 1.和res同等级别 2.主要是存放项目中的大文件 3.文件不受R类的管理 三.API 1.AssetManager  资产管理器 1-getAssets()   得到资产管理器 2-open(文件名)   返回文件的InputStream 2.ImageView:setImageBitmap(Bitmap  实例)  设置图片视图的位图 3.Bitmap   位图:B

手机内部file存储

---恢复内容开始--- 将数据存储到文件中 package com.example.hzq_study; import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter; import android.app.Activity;import

手机外部文件存储(SD卡存储)

package com.atguigu.l04_datastorage; import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException; import android.app.Activity;

数据存储——手机外部文件存储

一.特点 1.把文件存储在手机外部存储空间(SD卡)里 2.存储的是任意类型的文件 3.使用IO输入输出流操作文件 4.文件路径 1-SD卡根目录/Android/data/包名/files/[ 文件类型],应用卸载后,数据同时被删除: 2-SD卡根目录/,应用卸载之后,数据不会被同时删除. 5.需要声明权限 1-android.permission.WRITE_EXTERNAL_STORAGE,写入文件: 2-MOUNT_UNMOUNT_FILESYSTEMS,创建和删除文件. 二.API 1

《Android面试宝典》学习笔记(第五章:文件存储)

Android SDK 支持哪些文件存储技术? SharedPreferences.流文件存储.XML半结构化存储.JSON存储.数据库.第三方面向对象数据库. 如何使用ShardPreferences存取key-value类型的数据? //实例化SharedPreferences对象(第一步)  SharedPreferences mySharedPreferences= getSharedPreferences("test",  Activity.MODE_PRIVATE);  /

【Android】14.1 内部文件存储和读取

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 内部存储是指将应用程序建立的私有文件保存在内部存储器(移动经销商卖的那种容量较小的手机卡)中. 应用程序可通过OpenFileInput方法和OpenFileOutput方法读取内部存储设备上的这些文件. 1.OpenFileOutput方法 该方法打开应用程序私有文件,为写入设备做准备.默认情况下,写入的文件会覆盖同名的原文件.如果要打开的文件不存在,则创建一个新文件. 该方法的语法格式如下: public

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

一.基础概要 1.说明: 1>应用程序运行需要一些较大的数据或者图片可保存在手机内部 2>文件类型:任意 3>路径:/data/data/packageName/files/ 4>卸载应用时会删除此数据文件 5>也可以设置操作数据文件的权限(同SharedPreferences) 二.练习 1>FileInputStream fis=openFileInput("logo.png");     读取文件 2>FileOutputStream f

Android——FileOutputStream与openFileOutput()的区别分析【第一个用于文件存储,第二个用于SD卡存储】【转】

本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. public void save() { try { FileOutputStream outStream=this.openFileO