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. Linux Command Line 笔记(1)

    Yunduan CUI graphical user interfaces make easy tasks easy, while command line interfaces make diffi ...

  2. MySQL查询缓存

    MySQL查询缓存 用于保存MySQL查询语句返回的完整结果,被命中时,MySQL会立即返回结果,省去解析.优化和执行等阶段. 如何检查缓存? MySQL保存结果于缓存中: 把SELECT语句本身做h ...

  3. js本地图片预览

    相信大家都遇到过上传图片之前预览,网上找了很多,但都不是所有浏览器都支持,不过后来找到一个,但自己没有完全实验. 代码如下: <script> //使用IE条件注释来判断是否IE6,通过判 ...

  4. SSM框架的整合思路&功能实现

    这是我第一篇博客,关于SSM框架的整合思路以及简单功能实现. 首先,最近刚刚学习Spring+SpringMVC+Mybatis,在开发时遇到形形色色的问题,周遭人也为我提供了一些思路,我会一点点整理 ...

  5. C语言标准库函数(网络上copy的)

    C语言标准库函数 标准io函数Standard C I/Oclearerr() clears errorsfclose() close a filefeof() true if at the end- ...

  6. Interpolation in MATLAB

    Mathematics     One-Dimensional Interpolation There are two kinds of one-dimensional interpolation i ...

  7. OkHttp和Volley对比

    OkHttp 物理质量 使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)这2个jar包,总大小差不多400k,加上自己的封装,差不多得410k. 功能介绍 Squ ...

  8. 【OpenGL】 第一篇 OpenGL概览

    ---------------------------------------------------------------------------------------------------- ...

  9. python中的input,print

    此用例在python3.3.5中测试通过: 输入:在python中输入是使用input,下面示例代码表示把输入的值存入变量s中,并输入s 在这里提醒一下:使用input获取的值都是string类型

  10. dhtmlxScheduler日程安排控件

    dhtmlxScheduler是一个JavaScript日程安排控件 官方网站:http://www.dhtmlx.com/在线帮助文档:http://docs.dhtmlx.com/doku.php ...