Android入門:File文件存儲 教程鏈接:http://www.linuxidc.com/Linux/2012-07/66002.htm
- 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內容