基于文件流的读取与写入是Android平台上的数据存取方式之一。

在Android中,可以通过Context.openFileInput和Context.openFileOutput来分别获取FileInputStream和FileOutputStream。

openFileInput(String fileName); 打开应用程序私有目录下的指定私有文件以读入数据,返回一个FileInputStream对象。

openFileOutput(String name,int mode);打开应用程序私有目录下的指定私有文件以写入数据,返回一个FileOutputStream对象,如果文件不存在就创建这个文件。



java文件:

package zy.just.com.fileinputorfileoutput;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import org.apache.http.util.EncodingUtils;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends AppCompatActivity {    public static final String ENCODING="UTF-8";//常量,代表编码格式。  String fileName="test.txt";//文件名称  String message="你好,这是一个关于文件I/O的示例。";//写入和读出的数据信息  private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        writeFileData(fileName, message);//创建文件并写入数据  String result= readFileData(fileName);//获得从文件读入的数据  tv = (TextView) findViewById(R.id.tv);        tv.setText(result);    }    /**  * 方法:向指定文件中写入指定的数据  * @param fileName  * @param message  */  public void writeFileData(String fileName,String message){        try {            FileOutputStream fos = openFileOutput(fileName,MODE_PRIVATE);//获得FileOutputStream对象  byte[] bytes = message.getBytes();//将要写入的字符串转换为byte数组  fos.write(bytes);//byte数组写入文件  fos.close();//关闭FileOutputStream对象  } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    /**  * 打开指定文件,读取其数据,返回字符串对象  * @param fileName  * @return  */  public String readFileData(String fileName){        String result = "";        try {            FileInputStream fin = openFileInput(fileName);//获得FileInputStream对象  int length = fin.available();//获取文件长度  byte[] buffer = new byte[length];//创建byte数组用于读入数据  fin.read(buffer);            result = EncodingUtils.getString(buffer,ENCODING);//byte数组转换成指定格式的字符串  fin.close();//关闭文件输入流  } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result;    }}
xml布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context=".MainActivity">    <TextView  android:id="@+id/tv"  android:layout_width="match_parent"  android:layout_height="wrap_content" /></RelativeLayout>
  
运行结果:
使用openFileInput和openFileOutput实现Android平台的数据存储_第1张图片

更多相关文章

  1. [图文]为移植到Android平台上的Cocos2d-x项目添加xml布局文件
  2. android 之对象传递
  3. 今天开始写android的照片浏览器(一)至返回所有图片文件
  4. Android工程内嵌资源文件的两种方法
  5. [转]SimpleCursorAdapter类与数据绑定
  6. 删除androidAndroid递归方式删除某文件夹下的所有文件
  7. IntelliJ IDEA 如何导出安卓(Android)apk文件 详细教程
  8. Android音视频 - Camera+AudioRecord采集数据

随机推荐

  1. Android的Intent+uri应用实例
  2. Android开发主页框架搭建
  3. Android 如何删除短信
  4. android 按比例缩放图片(适屏)
  5. 【android】说说GestureDetector.OnGestu
  6. [置顶] android中自定义View
  7. android 接收锁屏广播
  8. android 文字或者图片生成.pdf文件
  9. android notification和notificationmana
  10. android file 记录