Android是基于java语言的,在java中提供了一套完整的输入输出流操作,与文件相关的有FileInputStream和FileOutputStream等,通过这些类可以方便访问磁盘上的文件内容。通用Android也支持这种方式来访问手机上 的文件。我们直到Android手机中的文件可以存储在内部存储空间和外部SD卡(如果有的话),现在将记录内部存储空间这种情况下的文件存储。

两个方法

Android中文件的读取操作主要是同过Context类来完成的,该类提供了两个方法来打开本应用程序的数据文件夹里的文件IO流。

(1)openFileInput(String name):打开App数据文件夹(data)下name文件对应的输入流。

(2)openFileOutput(String name,int mode):打开应用程序的数据文件夹下的name文件对应输出流。name参数用于指定文件名称,不能包含路径分隔符“\”,如果文件不存在,Android会自动创建,mode参数用于指定操作模式,Context类中定义了四种操作模式常量分别是:

(1)Context.MODE_PRIVATE = 0:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。

(2)Context.MODE_APPEND = 32768:模式检查文件是否存在,存在就在文件中追加内容,否则创建新文件再写入内容。

(3)Context.MODE_WORLD_READABLE = 1:表示当前文件可以被其他应用读取。
(4):Context.MODE_WORLD_WRITEABLE = 2:表示当前文件可以被其他应用写入。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_vertical">    <EditText        android:id="@+id/ET_write"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="输入想存入文件的内容"/>    <Button        android:id="@+id/BT_write"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="写入内容"/>    <EditText        android:id="@+id/ET_read"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:editable="false"        android:hint="显示读取的内容"/>    <Button        android:id="@+id/BT_read"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="读取内容"/>LinearLayout>

(不同为什么自己截的图会莫名其妙打上水印还有奇怪的qq_31718279是什么东西)
【Android】“存储”之普通文件存储(内部存储空间)_第1张图片

package com.file.file;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintStream;public class MainActivity extends AppCompatActivity {    private Button bt_write,bt_read;    private EditText et_write,et_read;//    设置保存的文件名称    private String fileName = "content.txt";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        bt_read = (Button)findViewById(R.id.BT_read);        bt_write = (Button)findViewById(R.id.BT_write);        et_read = (EditText)findViewById(R.id.ET_read);        et_write = (EditText)findViewById(R.id.ET_write);        bt_read.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {//                将读取的内容显示在 EditText 控件上                et_read.setText(read());            }        });        bt_write.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {//                将 EditText 上的内容写入文本                write(et_write.getText().toString());            }        });    }    private void write(String s) {        try{            FileOutputStream fos = openFileOutput(fileName, Context.MODE_APPEND);            PrintStream ps = new PrintStream(fos);            ps.print(s);            ps.close();            fos.close();        } catch (Exception e) {            e.printStackTrace();        }    }    private String read() {        StringBuilder sbBuilder = new StringBuilder("");        try{            FileInputStream is = openFileInput(fileName);//            定义缓冲区            byte[] buffer = new byte[64];//            记录每次读取的字节数            int hasRead;            while ((hasRead = is.read(buffer))!= -1){                sbBuilder.append(new String(buffer,0,hasRead));            }        } catch (Exception e){            e.printStackTrace();        }        return sbBuilder.toString();    }}

更多相关文章

  1. Android通过加载其他应用的Dex文件破解关键数据
  2. android中javah生成jni头文件报错问题
  3. 双击运行Android模拟器、创建SDcard、AVD、安装APK文件、上传文
  4. 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操
  5. Android 应用程序窗体显示状态操作(requestWindowFeature()的应用
  6. Android 文件操作心得体会
  7. 海康威视视频监控demo 源码+库文件
  8. android操作sim卡联系人信息

随机推荐

  1. Android(安卓)Adapter详解(1)
  2. Android(安卓)事件处理
  3. Android(安卓)AsyncTask解析
  4. android日志分析与记录.
  5. 理解Android的菜单
  6. Android高手进阶教程(四)之----Android(
  7. .net程序员转战android第二篇---牛刀小试
  8. Android(安卓)NFS文件系统挂载遇到的问题
  9. Android应用程序启动过程源代码分析(1)
  10. android读取keystore证书文件