`

玩转Android---组件篇---数据存储之File

阅读更多

我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件,PDF文件,音频文件,视频文件和图片等。Android提供了文件读写的方法。

通过Context.openFileInput()方法获得标准JAVA文件输入流(FileInputStream),通过Context.openFileOutput()方法获得标准的java文件输出流(FileOutputStream)。使用Resources.openRawResource(R.raw.DataFile)方法返回InputStream。

 

接下来通过一个小例子来掩饰File读写文件。创建一个Activity,在其中放置两个EditText和连个Button,第一个EditText和Button将EditText的内容写到文件temp.txt文件中。第二个EditText和Button将内容从文件temp.txt中读取出来显示。问价被默认保存在/data/data/package/files下面。

 

main.xml

<?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"
    >
	<EditText
		android:id="@+id/edit1"
		android:layout_width="fill_parent"
		android:layout_height="60dip"
	/>
	<Button
		android:id="@+id/button1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="写入数据"
	/>
	
	<EditText
		android:id="@+id/edit2"
		android:layout_width="fill_parent"
		android:layout_height="60dip"
	/>
	<Button
		android:id="@+id/button2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="读取数据"
	/>
</LinearLayout>

 

FileTest.java

package org.hualang.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 FileTest extends Activity {
    /** Called when the activity is first created. */
	private Button read,write;
	private EditText text1,text2;
	private static final String FILE_NAME="temp.txt";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        write=(Button)findViewById(R.id.button1);
        read=(Button)findViewById(R.id.button2);
        text1=(EditText)findViewById(R.id.edit1);
        text2=(EditText)findViewById(R.id.edit2);
        
        //设置按钮事件监听器
        write.setOnClickListener(new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		//写内容
        		write(text1.getText().toString());
        	}
        });
        
        read.setOnClickListener(new OnClickListener()
        {
        	public void onClick(View v)
        	{
        		//读内容
        		text2.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();
    	}
    }
}

 

运行结果如下:

 

 

 

 

 

  • 大小: 13.2 KB
  • 大小: 13.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics