当前位置:操作系统 > 安卓/Android >>

Android---02---文件的保存与读取

数据存储与访问
 
很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问,Android为数据存储提供了如下几种方式:
 
·文件
·SharedPreferences(参数)
·SQLite数据库
·内容提供者(Content provider)
·网络
 
下面演示文件的存储与读取:
 
 
activity_main.xml
[html]  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >  
  
    <TextView  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="@string/text1" />  
  
    <EditText  
        android:id="@+id/filename"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="abc.txt" />  
  
    <TextView  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:text="文件内容" />  
  
    <EditText  
        android:id="@+id/filecontent"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:minLines="3" />  
  
    <Button  
        android:id="@+id/myButtonSave"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="保存" />  
  
    <Button  
        android:id="@+id/myButtonRead"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="读取" />  
  
</LinearLayout>  
 
 
FileServise.java
 
[java]  
package com.example.service;  
  
import java.io.ByteArrayOutputStream;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.OutputStream;  
import java.io.OutputStreamWriter;  
  
import android.content.Context;  
  
public class FileServise {  
    /** 
     * 保存文件 
     *  
     * @param filename 
     *            文件名称 
     * @param filecontent 
     *            文件内容 
     * @return 
     */  
  
    private Context context;  
  
    public FileServise(Context context) {  
        super();  
        this.context = context;  
    }  
  
    public void savefile(String filename, String filecontent)  
            throws IOException {  
  
        /* 
         * IO 技术 看过我的JAVASE IO流的 写起来很轻松,不过这里使用安卓的Context 对象可以快速得到输出流 第二个参数是 
         * 私有操作模式,创建出来的文件只能被本应用访问。 同时,采用私有模式创建的文件, 会覆盖源文件的内容。 
         */  
  
        FileOutputStream fos = context.openFileOutput(filename,  
                Context.MODE_PRIVATE);  
        fos.write(filecontent.getBytes());  
        fos.close();  
  
    }  
  
    /** 
     * 文件读取 
     *  
     * @param filename 
     * @return 
     * @throws IOException 
     */  
    public String readfile(String filename) throws IOException {  
  
        FileInputStream fis = context.openFileInput(filename);  
        // 写入内存中的方法  
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        byte[] buffer = new byte[1024];  
        int len = 0;  
        while ((len = fis.read(buffer)) != -1) {  
            baos.write(buffer, 0, len);  
        }  
        // 获取  
        byte[] data = baos.toByteArray();  
        return new String(data);  
    }  
  
}  
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,