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 ,