首页 > 代码库 > Android--文件存取

Android--文件存取

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.http.util.EncodingUtils;

import android.app.Activity;
import android.content.Context;

/**
 * Write and read data at ./data/data/packageName/files/
 * 
 * @author yurf
 */
public class FileCache {
    /**
     * write file to ./data/data/packageName/files/
     * 
     * @param fileName
     *            filename
     * @param message
     *            string to save
     * @param context
     */
    public static void writeFileData(String fileName, String message,
            Context context) {
        String content = message;
        try {
            FileOutputStream outputStream = context.openFileOutput(fileName,
                    Activity.MODE_PRIVATE);
            outputStream.write(content.getBytes());
            outputStream.flush();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * write file to ./data/data/packageName/files/
     * 
     * @param fileName
     * @param values
     * @param context
     */
    public static void writeFileData(String fileName, byte[] values,
            Context context) {

        try {
            FileOutputStream outputStream = context.openFileOutput(fileName,
                    Activity.MODE_PRIVATE);
            outputStream.write(values);
            outputStream.flush();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * read file from ./data/data/packageName/files/
     * 
     * @param fileName
     * @param context
     * @return
     */
    public static String readFileData(String fileName, Context context) {
        String content = "";
        try {
            FileInputStream inputStream = context.openFileInput(fileName);
            ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
            int length = inputStream.available();
            byte[] bytes = new byte[length];
            inputStream.read(bytes);
            arrayOutputStream.write(bytes, 0, bytes.length);
            inputStream.close();
            arrayOutputStream.close();
            content = EncodingUtils.getString(arrayOutputStream.toByteArray(),
                    "UTF-8");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return content;
    }
}