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

Android开发学习笔记:数据存取之File浅析

2014-04-22 09:02 671 查看
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系统查看一下我们的文件是否写入成功。





本文出自 “IT的点点滴滴” 博客,请务必保留此出处/article/4132161.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: