Android数据存储之内部存储
来源:互联网 发布:淘宝50字万能好评 编辑:程序博客网 时间:2024/06/11 19:25
本文简单讲解一下内部存储InternalStorage的使用
InternalStorage是指直接将文件保存到系统内部存储空间.默认情况下,使用该方法保存的文件会对当前应用程序可见,对于其它应用程序,是不可见的,如果用户卸载了该应该程序,则保存数据的文件也会一起被删除。
这里的数据可以是各种文件,比如:图片,文档,视频等等,文件可大可小。但是一般不要太大,如果是下载多个大的视频,一般是下载到外部空间SD卡目录下的。
存储数据步骤如下
1)调用openFileOutput(String name,int mode)方法,该方法会返回一个 FileOutputStream; //参数1:保存的文件名,参数2:操作模式。模式一般使用:常量MODE_PRIVATE
2)使用 write()方法向文件中写入数据
3)使用flush()方法刷新输出流
4)使用close()方法关闭流
读取数据用:
openFileInput(String name)方法
下面是一个简单保存和读取内部存储器数据的示例:
程序功能:
1)点击查看是否可以使用外部存储空间。
2)保存输入框内的数据到一个文本文件中,把文本文件保存到内部存储器的根目录下。
3)读取刚才保存的文本的数据,显示到输入框的位置。
(一)xml布局文件的设计
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/main_et_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="save" android:text="save" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="read" android:text="read" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="check" android:text="check" /></LinearLayout>
(二)java代码设计
package com.lwz.internal;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.EditText;import android.widget.Toast;import java.io.FileInputStream;import java.io.FileOutputStream;/*** * 内部存储器的存储,没有SD卡的情况只能这样存储文件, * 但是有SD卡也是也可以使用内部存储器来保存文件的 * 这里把文件存储在程序内部, * 程序删除后,文件也会被删除 * 文件保存可以不指明路径,默认路径是/data/date/包名/路径下 * 但是文件名还是要定义好的。 * */public class MainActivity extends AppCompatActivity { EditText et_content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_content = (EditText) findViewById(R.id.main_et_content); } //保存信息文件 public void save(View v) { try { //输出流,这里用openFileOutput获取,定义文件名和文件的存储模式 FileOutputStream fos = openFileOutput("name.txt", MODE_APPEND); //对文件写信息 fos.write(et_content.getText().toString().getBytes()); //刷新数据并关闭流 fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } //读取信息文件 public void read(View v) { try { //输出流,这里用openFileInput获取 FileInputStream fis = openFileInput("name.txt"); //对文件读信息 int len = 0; byte[] buf = new byte[1024]; while ((len = fis.read(buf)) != -1) { //把读取到的信息放到输入框内 et_content.append(new String(buf, 0, len)); } //关闭流 fis.close(); } catch (Exception e) { e.printStackTrace(); } } public void check(View v) { //获取存储器状态 String state = Environment.getExternalStorageState(); //sd卡就绪状态 if (state.equals(Environment.MEDIA_MOUNTED)) { //外部存储器 Toast.makeText(this, "可以使用外部存储器", Toast.LENGTH_SHORT).show(); } else { //只能使用内部存储器 Toast.makeText(this, "只能使用内部存储器", Toast.LENGTH_SHORT).show(); } }}
程序运行后的结果:
简单保存和读取功能基本没有问题。这里是内部存储空间,还不需要添加权限,如果使用外部存储空间SD卡是要添加用户权限的。
4 0
- Android数据存储之内部存储
- Android数据存储之内部存储、外部存储
- android数据存储方式之二 文件存储:内部存储
- 数据存储之内部存储
- Android之内部存储读取数据
- Android 数据存储:五大存储之File存储(内部存储与外部存储)
- Android--数据持久化之内部存储、Sdcard存储
- Android数据存储之内部文件存储(一)
- Android数据存储之——内部存储
- Android数据存储之Internal Storage内部存储
- android数据存储_内部存储
- Android 数据存储---File内部存储
- Android数据存储技术--内部存储笔记
- Android存储方式之内部存储
- Android中的数据存储: SharedPreferences,内部存储,外部存储,数据库
- Android 数据存储-内部存储和外部存储
- Android的数据存储方式---内部存储与外部存储
- Android数据存储(二)File 数据内部存储
- C# panel控件实现鼠标滚轮滚动拖动滚动条
- windows下bat批处理实现守护多个进程
- 关于android性能优化之类的文章
- 深入理解javascript构造函数和原型对象
- Unity3D自学笔记——UGUI背包系统(三)物品弹出提示框
- Android数据存储之内部存储
- declare-styleable的使用
- hrbust 1404 Leyni的汽车比赛【dp+思维优化】好题!
- numericUpDown去掉上下箭头
- 浅析SuperMap iMobile 8C for iOS打包静态库
- nginx CDN中的知识点
- c#获取机器唯一识别码
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
- float布局和position布局的简单区别