您的位置:首页 > 移动开发 > Android开发

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

2015-07-29 12:34 453 查看
原址:http://hualang.iteye.com/category/143855

我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件,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

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"

>

<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

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();

}

}

}

运行结果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: