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

来源:互联网 发布:我的知乎2016 编辑:程序博客网 时间:2024/06/03 16:05

 

File文件存储博客链接:http://blog.csdn.net/xiazdong/article/details/7687439

 

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;}}

 

测试代码:

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内容


 

原创粉丝点击