Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中。比如一些word文档,PDF文档,图片,音频,视频文件等。
使用文件读写方法的步骤:
1.调用Context.openFileInput()方法获得Java文件输入流(FileInputStream)
2.调用Context.openFileOutput()方法获得java文件输出流(FileOutputStream)
3.使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream
下面的具体实例,在一个Activity里面创建两个EditText和两个Button,第一个EditText和Button将EditText的内容写到文件file.txt文件中。第二个EditText和Button将内容从文件file.txt中读取出来显示。文件被默认保存在/data/data/package/files下面。
MainActivity.java
- package com.android.file;
-
-
import java.io.FileInputStream;
-
import java.io.FileOutputStream;
-
import android.app.Activity;
-
import android.os.Bundle;
-
import android.view.View;
-
import android.view.View.OnClickListener;
-
import android.widget.Button;
-
import android.widget.EditText;
-
-
public class MainActivity extends Activity {
-
-
private static final String FILE_NAME="file.txt";
-
private Button writeBtn,readBtn;
-
private EditText writeText,readText;
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- writeBtn = (Button)findViewById(R.id.Button1);
- readBtn = (Button)findViewById(R.id.Button2);
-
- writeText = (EditText)findViewById(R.id.EditText1);
- readText = (EditText)findViewById(R.id.EditText2);
-
-
writeBtn.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
- write(writeText.getText().toString());
- }
- });
-
-
readBtn.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
- readText.setText(read());
- }
- });
- }
-
-
private String read(){
-
try {
-
- FileInputStream fis = openFileInput(FILE_NAME);
-
-
byte[] buffer = new byte[fis.available()];
-
- fis.read(buffer);
-
return new String(buffer);
-
} catch (Exception e) {
- e.printStackTrace();
- }
-
return null;
- }
-
-
private void write(String content){
-
try {
-
-
-
-
-
- FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);
-
- fos.write(content.getBytes());
-
- fos.close();
-
} catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
main.java
- <?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
>
-
<TextView
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="请被文本输入内容"
-
/>
-
<EditText
-
android:text=""
-
android:id="@+id/EditText1"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:height="100px"
-
/>
-
<Button
-
android:id="@+id/Button1"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:text="写数据"
-
/>
-
<EditText
-
android:text=""
-
android:id="@+id/EditText2"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:height="100px"
-
/>
-
<Button
-
android:id="@+id/Button2"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
android:text="读数据"
-
/>
-
</LinearLayout>
效果图:
在终端下输入“adb shell”命令进入Android系统查看一下我们的文件是否写入成功。
本文转自 lingdududu 51CTO博客,原文链接:http://blog.51cto.com/liangruijun/660540