XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<Button
        android:id="@+id/btnWrite"
        android:layout_width="match_parent"
        android:layout_marginTop="20dp"
        android:layout_height="wrap_content"
        android:text="sp存储" />

<Button
        android:id="@+id/btnRead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="sp读取" />

<Button
        android:id="@+id/btnfileWrite"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="文件存储" />
   
    <Button
        android:id="@+id/btnfileRead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="文件读取" />
   
    <Button
        android:id="@+id/btnFileWriteToSd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="SDCard存储" />
   
    <Button
        android:id="@+id/btnFileReadToSd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="SDCard读取" />
</LinearLayout>

Activity:

public class ShareActivity extends Activity implements OnClickListener {

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.sharepreference);
  findViewById(R.id.btnWrite).setOnClickListener(this);
  findViewById(R.id.btnRead).setOnClickListener(this);
  findViewById(R.id.btnFileWriteToSd).setOnClickListener(this);
  findViewById(R.id.btnfileWrite).setOnClickListener(this);
  findViewById(R.id.btnfileRead).setOnClickListener(this);
  findViewById(R.id.btnFileReadToSd).setOnClickListener(this);
 }
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.btnWrite:
   SharedPreferences sp = getSharedPreferences("setting",
     Context.MODE_PRIVATE);
   SharedPreferences.Editor editor = sp.edit();
   editor.putString("name", "张三");
   editor.putInt("age", 25);
   editor.putInt("weight", 120);
   editor.commit();
   break;
  case R.id.btnRead:
   SharedPreferences spread = getSharedPreferences("setting",
     Context.MODE_PRIVATE);
   String name = spread.getString("name", "null");
   int age = spread.getInt("age", 18);
   int weight = spread.getInt("weight", 15);
   Toast.makeText(this, name + "--" + age + "--" + weight,
     Toast.LENGTH_LONG).show();
   break;
  case R.id.btnfileWrite:
   writeFile();
   break;
  case R.id.btnfileRead:
   readFile();
   break;
  case R.id.btnFileWriteToSd:
            writeFilesToSDCard();
   break;
  case R.id.btnFileReadToSd:
   readFilesFromSDCard();
   break;
  }

}
 // 写文件
 public void writeFile() {
  FileOutputStream os = null;
  try {
   os = this.openFileOutput("jerei.txt", Context.MODE_PRIVATE);
   os.write("姓名:张三".getBytes());
   os.write("年龄:25".getBytes());
   os.write("体重:100".getBytes());
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (os != null) {
    try {
     os.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
    os = null;
   }
  }

}
//读文件
 public void readFile() {
  FileInputStream is = null;
  StringBuilder sb = new StringBuilder();
  try {
   is = this.openFileInput("jerei.txt");
   byte[] buffer = new byte[1024];
   int len = 0;
   while ((len = is.read(buffer)) != -1) {
    String tmp = new String(buffer, 0, len);
    sb.append(tmp);
   }
  } catch (FileNotFoundException e) {

e.printStackTrace();
  } catch (IOException e) {

e.printStackTrace();
  } finally {
   if (is != null) {
    try {
     is.close();
    } catch (IOException e) {

e.printStackTrace();
    }
   }
  }
  Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();
 }
//存进SD卡
 public void writeFilesToSDCard() {
  String filePath = null;
  if (Environment.getExternalStorageState().equals(
    Environment.MEDIA_MOUNTED)) {
   // 获取SDCard根路径
   filePath = Environment.getExternalStorageDirectory().toString();
   filePath = filePath + File.separator + "jerei" + File.separator
     + "edu";
   File fileParent = new File(filePath);
   if (!fileParent.exists()) {
    fileParent.mkdirs();
   }
   FileOutputStream os = null;
   try {
    os = new FileOutputStream(new File(fileParent, "a.txt"));
    os.write("向SDCard中写入文件!!".getBytes());
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   } finally {
    if (os != null) {
     try {
      os.close();
     } catch (IOException e) {
      e.printStackTrace();
     }
    }
   }
  }
 }

//读取SD卡
 public void readFilesFromSDCard(){
  FileInputStream is=null;
  StringBuilder sb=new StringBuilder();
  try {
   is=this.openFileInput("a.txt");
   byte[] buffer = new byte[1024];
   int len = 0;
   while ((len = is.read(buffer)) != -1) {
    String tmp = new String(buffer, 0, len);
    sb.append(tmp);
   }
  } catch (FileNotFoundException e) {
   
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   if(is!=null){
    try {
     is.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
  Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();
 }

}

sp,文件以及SDcard存储的更多相关文章

  1. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  2. Android--数据持久化之内部存储、Sdcard存储

    前言 之前一直在讲AndroidUI的内容,但是还没有完结,之后会慢慢补充.今天讲讲其他的,关于数据持久化的内容.对于一个应用程序而言,不可避免的要能够对数据进行存储,Android程序也不例外.而在 ...

  3. 万能存储工具类SDCard存储 /data/data/存储 assets存储 raw存储

    万能存储工具类 SDCard存储  /data/data/存储  assets存储 raw存储 粘贴过去就能够用了 <uses-permission android:name="and ...

  4. android sp文件一个键值保存多条信息

    之前碰到过这样的问题,sp文件只能够append,或者清空.其实一个键值,通过,分割,或者替代可以实现多条信息的存储.下面是一个举例: package com.ctbri.weather.utils; ...

  5. IOS数据存储之文件沙盒存储

    前言: 之前学习了数据存储的NSUserDefaults,归档和解档,对于项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了.文件沙盒存储主要存储非机密数据,大的数据. ...

  6. 高性能文件缓存key-value存储—Redis

    1.高性能文件缓存key-value存储-Memcached 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文 ...

  7. 高性能文件缓存key-value存储—Memcached

    1.高性能文件缓存key-value存储—Redis 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出 ...

  8. SDCard存储

    当需要访问SD卡上的文件时,需要按照如下步骤进行 *调用Environment.getExternalStorageState()判读手机上是否插入SD卡(返回MEDIA_MOUNTED则表示已经插入 ...

  9. 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理

    [源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...

随机推荐

  1. 【Gerrit】Gerrit cmd query (gerrit命令行查询change信息)

    本文仅展现个人使用情况和理解,英文原址:https://review.openstack.org/Documentation/cmd-query.html 基本使用格式: ssh -p <por ...

  2. CE取系统时间值

    取时间值: void GetTime() { //取时间值 SYSTEMTIME st = {}; // 时间结构体 GetLocalTime(&st); // 把获取的系统时间信息存储到SY ...

  3. [转]linux,windows 可执行文件(ELF、PE)

    ELF (Executable Linkable Format)UNIX类操作系统中普遍采用的目标文件格式 . 首先要知道它有什么作用:工具接口标准委员会TIS已经将ELF作为运行在Intel32位架 ...

  4. 使用"立即执行函数"(Immediately-Invoked Function Expression,IIFE)

    一.原始写法 模块就是实现特定功能的一组方法. 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块. function m1(){ //... } function m2(){ // ...

  5. python整理之(字符串、元组、列表、字典)

    一.关于字符串的整理总结 对于字符串的操作常用的有这些: 字符串的操作通过dir()函数可以查看 我们先整理没有下划线的用法,有下划线的暂时不去考虑. 1.capitalize 功能:使字符串的首字母 ...

  6. 利用 Android Gradle 瘦身 apk

    http://devyang.me/blog/2014/11/11/li-yong-android-gradleshou-shen-apk/ apk瘦身一般有两条线, 去除无用的代码,例如引用一个比较 ...

  7. http请求报错

    手机端上传base64位图片java后台接受 手机端post方式发送 后台报错: Error parsing HTTP request header Note: further occurrences ...

  8. requests高级用法

    会话对象 当你向同一主机发送多个请求时,session会重用底层的tcp连接,从而提升性能,同时session也会为所有请求保持 cookie. # _*_ coding: utf-8 _*_ imp ...

  9. tomcat解决加载JSP文件过大错误

    当遇到多个Jsp include一起的时候加载时遇到如下错误: Error:SEVERE: Servlet.service() for servlet jsp threw exception org. ...

  10. 转载:详细解析Java中抽象类和接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...