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是什么东西)

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的设置界面及Preference使用
  2. Android中的控件
  3. 安卓系统结构
  4. Android之SQlite数据库
  5. 首届 Google 暑期大学生博客分享大赛——2010 Andriod 篇
  6. android中javah生成jni头文件报错问题
  7. 双击运行Android模拟器、创建SDcard、AVD、安装APK文件、上传文
  8. 最全的Android项目结构以及功能
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android异步加载全解析之Bitmap
  2. Android菜鸟实训的第一天
  3. 分享几点Android 开发中的小技巧
  4. 阿里ctf-2014 android 第三题――so动态
  5. 爱踢门之锤子自由截屏快捷键配置(上)
  6. Android之利用JSBridge库实现Html,JavaScr
  7. Android手机游戏开发知识点总结
  8. Android 手机十大必备软件
  9. Android中Handler问题汇总
  10. AMD主机上使用Android(安卓)Studio emula