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

Android入门:实现一个File存储的辅助类

[java] 
package com.xiazdong.file.util; 
 
import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
 
import android.content.Context; 
import android.os.Environment; 
 
public class FileUtil { 
    /**
     * 保存文本到内存
     * @param context
     * @param filename
     * @param content
     * @param mode
     * @throws Exception
     */ 
    public static void saveTextInMemory(Context context,String filename,String content,int mode) throws Exception{ 
        try{ 
            FileOutputStream out = context.openFileOutput(filename, mode); 
            out.write(content.getBytes("UTF-8")); 
            out.close(); 
        } 
        catch(Exception e){ 
            throw new Exception(); 
        } 
    } 
    /**
     * 保存文件到sdcard
     * @param filename
     * @param content
     * @throws Exception
     */ 
    public static void saveTextInSdcard(String filename,String content) throws Exception{ 
        try{ 
            File f = new File(Environment.getExternalStorageDirectory(),filename); 
            FileOutputStream out = new FileOutputStream(f); 
            out.write(content.getBytes("UTF-8")); 
            out.close(); 
        } 
        catch(Exception e){ 
            throw new Exception(); 
        } 
    } 
    /**
     * 从内存读取文件
     * @param filename
     * @return
     * @throws Exception
     */ 
    public static String loadTextFromSdcard(String filename) throws Exception{ 
        try{ 
            File f = new File(Environment.getExternalStorageDirectory(),filename); 
            FileInputStream in = new FileInputStream(f); 
            byte[]data = read2byte(in); 
            return new String(data,"UTF-8"); 
        } 
        catch(Exception e){ 
            throw new Exception(); 
        } 
    } 
    /**
     * 从sdcard读取文件 
     * @param context
     * @param filename
     * @return
     * @throws Exception
     */ 
    public static String loadTextFromMemory(Context context,String filename) throws Exception{ 
        try{ 
            FileInputStream in = context.openFileInput(filename); 
            byte[]data = read2byte(in); 
            return new String(data,"UTF-8"); 
        } 
        catch(Exception e){ 
            throw new Exception(); 
        } 
    } 
    private static byte[] read2byte(InputStream in) throws IOException { 
        byte[] data; 
        ByteArrayOutputStream bout = new ByteArrayOutputStream(); 
        byte[]buf = new byte[1024]; 
        int len = 0; 
        while((len = in.read(buf))!=-1){ 
            bout.write(buf, 0, len); 
        } 
        data = bout.toByteArray(); 
        return data; 
    } 

 
测试代码:
[java] 
FileUtil.saveTextInSdcard("1.txt","hello");     //将"hello"保存到/mnt/sdcard/1.txt中 
String content = FileUtil.loadTextFromSdcard("1.txt");  //读取/mnt/sdcard/1.txt内容 
FileUtil.saveTextInMemory(MainActivity.this,"1.txt","hello", Context.MODE_PRIVATE); //将hello保存到/data/data/package/files/1.txt中 
String content = FileUtil.loadTextFromMemory(MainActivity.this, "1.txt");   //读取/data/data/package/files/1.txt内容 

 作者:xiazdong

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,