1.activity_main.xml文件中

 <!-- 保存数据到手机内存中 --><Buttonandroid:id="@+id/btnSave"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/etContent"android:layout_centerHorizontal="true"android:text="保存" android:onClick="save"/><!--  要保存的数据 --><EditTextandroid:id="@+id/etContent"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/btnSave"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:layout_marginTop="16dp"android:ems="10" ><requestFocus /></EditText><!--  将信息写入到sd卡中 --><Buttonandroid:id="@+id/btnSaveTosdcard"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignRight="@+id/tvContent"android:layout_below="@+id/btnLoad"android:layout_marginTop="37dp"android:onClick="saveTosdcard"android:text="保存到SD卡" /><!--  读取信息输入到tvContent中 --><Buttonandroid:id="@+id/btnLoad"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/btnSave"android:layout_marginTop="19dp"android:layout_toLeftOf="@+id/tvContent"android:text="载入"android:onClick="load" /><TextViewandroid:id="@+id/tvContent"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/btnLoad"android:layout_alignBottom="@+id/btnLoad"android:layout_marginLeft="30dp"android:layout_toRightOf="@+id/btnSave"android:text="" /><!-- 从SD卡中读取数据显示到tvsdcard文本中 --><Buttonandroid:id="@+id/btnloadFromSdcard"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/btnSaveTosdcard"android:layout_below="@+id/btnSaveTosdcard"android:layout_marginTop="35dp"android:text="从sd卡中读取信息" android:onClick="loadFromSdcard"/><TextViewandroid:id="@+id/tvsdcard"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/btnloadFromSdcard"android:layout_alignBottom="@+id/btnloadFromSdcard"android:layout_toRightOf="@+id/btnloadFromSdcard"android:text="" />

2.MainActivity活动

package com.t20.fileop;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {private EditText meEditTextContent;private TextView tvContent;private TextView mTextViewSdcard;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取到相应的控件meEditTextContent = (EditText) findViewById(R.id.etContent);tvContent = (TextView) findViewById(R.id.tvContent);mTextViewSdcard = (TextView) findViewById(R.id.tvsdcard);}/*** 保存文件到手机内存中* * @param v*/public void save(View v) {// 文件输出流FileOutputStream out = null;// 缓冲写入器BufferedWriter writer = null;// 要写入的数据String str = meEditTextContent.getText().toString();try {// 用于将数据保存到指定的文件中,// 第一个参数是文件名,第二个参数是文件的操作模式// Context.MODE_PRIVATE写入的内容会覆盖原文件中的内容// Context.MODE_APPEND如果文件已经存在,就往文件中追加内容,不存在就创建文件out = openFileOutput("data.txt", Context.MODE_PRIVATE);writer = new BufferedWriter(new OutputStreamWriter(out));// 往外写数据writer.write(str);Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_SHORT).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {// 关闭流writer.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 载入文件信息* * @param v*/public void load(View v) {FileInputStream in = null;BufferedReader reader = null;StringBuilder builder = new StringBuilder();try {// 读取指定文件的信息in = openFileInput("data.txt");reader = new BufferedReader(new InputStreamReader(in));String line = "";// 将读到的数据赋值给line,当line不为空的时候进行追加while ((line = reader.readLine()) != null) {builder.append(line);}// 将读取到的信息在文本中进行输出tvContent.setText(builder.toString());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (reader != null) {try {// 关闭输入流reader.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 将信息写入到sd卡中 * 读写sd卡需要权限,在AndroidManifest.xml中设置android.permission.WRITE_EXTERNAL_STORAGE* * @param v*/public void saveTosdcard(View v) {//文件输出流FileOutputStream fos = null;//要写入的数据String str = meEditTextContent.getText().toString();//设置文件路径 ,第一个参数是文件保存的路径,null放在根目录下,第二个参数是文件名File file = new File(getExternalFilesDir(null), "/data.txt");try {fos = new FileOutputStream(file);fos.write(str.getBytes());Toast.makeText(MainActivity.this, "保存到SD卡成功!", Toast.LENGTH_SHORT).show();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fos != null) {try {// 关闭输入流fos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/*** 从sd卡中读取信息进行显示 * 也需要权限,但在写入的时候已经给了权限,读取的时不需要分配权限* 需要设置时在AndroidManifest.xml中设置android.permission.READ_EXTERNAL_STORAGE* @param v*/public void loadFromSdcard(View v) {//设置文件路径,第一个参数是文件保存的路径,null放在根目录下,第二个参数是文件名File file = new File(getExternalFilesDir(null), "/data.txt");//文件输入流InputStream is = null;try {is = new FileInputStream(file);//使用缓冲来读byte[] buf = new byte[1024];// 每次读取1K的数据StringBuilder sb = new StringBuilder();// 当还存在数据的时候就一直读取while (is.read(buf) != -1) {sb.append(new String(buf).trim());}//将数据输入到文本中显示mTextViewSdcard.setText(sb.toString());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (is != null) {try {// 关闭输入流is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
}

Android文件存储与读取(手机内存、SD卡)相关推荐

  1. Android本地文件存储,机身和外置sd卡

    在安卓的开发中,有时候要用到大文件的存储,这个时候就不能存储在应用内部(data/data),只能借助外部存储.而外部存储又分为手机机身的存储空间(一级sd卡)和外置sd卡存储空间(二级sd卡). 1 ...

  2. 读取手机或SD卡的音频

    最近要写一款音乐播放器,之前没接触过,不了解如何写,经过一番查询资料,看别人博客,终于有点思路: 先做本地音乐播放,添加歌词,再做网络,最后做下载,大体思路这样,今天主要写本地读取音频文件 Andro ...

  3. 【Android】14.2 外部文件存储和读取

    分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 1.基本概念 内部存储的私有可用存储空间一般都不会很大,对于容量比较大的文件,例如视频等,应该将其存储在外部存储设 ...

  4. Android开发之系统信息——获取Android手机中SD卡内存信息

    SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件.因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android ...

  5. /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径

    Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹.就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结: 一.SD卡中 1. /mnt/sdcard或者/sdcard这是 ...

  6. android 手机内存其他文件在哪里,消失的手机内存去哪了?用它清理手机文件,告诉你手机内存的秘密...

    原标题:消失的手机内存去哪了?用它清理手机文件,告诉你手机内存的秘密 从早前的1g,2g,到后来的8g,16g,32g,再到现在的128g,256g,512g,甚至于以后的1T,2T,手机内存不断变大 ...

  7. android 文件存储 集合,Android 文件存储的基本使用

    在Android中我们大多数情况下我们用的都是绝对路径: 文件存储位置说明: 内部存储不是内存,内部存储位于系统中很特殊的一个位置,当应用被卸载后,内部存储的文件夹也被删除,一个应用所创建的所有文件都 ...

  8. 转:彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑

    转自:https://blog.csdn.net/u010937230/article/details/73303034 前言: 对于任何一个应用来说,无论是PC端应用还是Android应用,存储肯定 ...

  9. Android文件存储---内部存储,外部存储以及各种存储路径解惑

    本文转自:https://blog.csdn.net/u010937230/article/details/73303034 前言: 对于任何一个应用来说,无论是PC端应用还是Android应用,存储 ...

最新文章

  1. docker 端口映射 udp_Docker领路,走进压力测试的现代化 | 51上头条
  2. Beaglebone Black教程项目1闪烁板载LED
  3. __weak与__block的区别
  4. 错误:不允许有匹配 [xX][mM][lL] 的处理指令目标。
  5. SQL Server - 使用 Merge 语句实现表数据之间的对比同步
  6. TCP/IP学习笔记(四)TCP超时重传及拥塞控制
  7. ISE14.7兼容性问题集锦
  8. java aio聊天_JAVA aio简单使用
  9. android 沉浸式_【沉浸式体验】投影秀科技与视觉:体验亦真亦幻的超常感受
  10. Linux系统下ifconfig和route配置网络详解
  11. [转]Win XP常遇网络故障分析:局域网问题
  12. 重装服务器,解决怪问题
  13. CxImage入门教程,图文并茂
  14. pdf加密阅读html,pdf文档加密如何解除
  15. jndi step by step(2)
  16. 一文带你了解800万像素车载摄像头
  17. [转帖]Photoshop制作梦幻效果婚纱照片
  18. 《Effective Objective-C 2.0》读书笔记
  19. Java程序设计教程(第3版)雍俊海 全书例程-2
  20. 网易2019年Q3财报净利47.26亿元 从财报看网易的长期主义

热门文章

  1. 处女座你完了!荣耀9和荣耀V9的选择题你会做吗?
  2. 小心!程序员被空姐骗到香港做传销!
  3. Python全栈工程师要掌握的五种知识
  4. SQL生成整年日期表(全)
  5. 腾讯云图片(行为)验证码,腾讯天御验证码,前vue后python端配置。前后端分离drf下的
  6. centos7 安装 apollo
  7. linux 命令 mpstat,linux mpstat命令
  8. 百度用心良苦 搜索页面惊现2012世界末日特效
  9. 计算机论文章节构成,一篇文章弄懂电脑的组成
  10. 伽玛函数:小数的阶乘(广义阶乘)