A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© woying123 中级黑马   /  2015-12-6 01:45  /  1265 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 {  
            //实例化文件输出流  
            //openFileOutput(String name, int mode)  
            //第一个参数文件名  
            //第二个是模式   
            //MODE_APPEND表示要创建的文件存在则新写入的数据不会覆盖以前的数据。  
            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系统查看一下我们的文件是否写入成功。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马