玩转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();
}
}
}
运行结果如下:
我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本文件,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();
}
}
}
运行结果如下:
相关文章推荐
- 玩转Android---组件篇---Service(服务)
- 玩转Android---组件篇---Broadcast Receiver(广播接收器)
- 我的Android进阶之旅------>Android关于TextWatcher的初步了解
- 玩转Android---组件篇---Activity(活动)
- 玩转Android---组件篇---Intent(意图)
- android实现轮播图
- Android 讲义第二版 ViewSwitcher + GestureDetector 练习
- AndroidStudio的一些使用问题
- Android文件前有红色感叹号
- 变化Android系统属性SystemProperties.set("sys.powerctl", "shutdown")关机分析
- android系统如何获得外置卡路径
- Android之项目推荐使用的第三方库
- Android开发之adb命令
- Android:Layout_weight的深刻理解
- android 字符串string
- (转)Android新的menu实现——ActionMode
- android 休眠唤醒机制分析(一)----wake_lock (自用 学习记录)
- android项目引入三方类库配置文件
- robotium+ant+android-junit-report
- Android之TelephonyManager类的方法详解