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

android通用文件操作

  最经用到android的SCCard的文件操作,因此稍作了整理,将它写成一个简单的工具类。其中,可以判断SDCard的是否可用,可用存储空间,文件的创建以及写入数据。经过测试,可以正常使用。代码如下:


[java]
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import android.os.Environment; 
import android.os.StatFs; 
import android.util.Log; 
 
public class FileUtil { 
    private static int bufferd = 1024; 
 
    private FileUtil() { 
    } 
 
    /*
     * <!-- 在SDCard中创建与删除文件权限 --> <uses-permission
     * android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--
     * 往SDCard写入数据权限 --> <uses-permission
     * android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     */ 
 
    // =================get SDCard information===================  
    public static boolean isSdcardAvailable() { 
        String status = Environment.getExternalStorageState(); 
        if (status.equals(Environment.MEDIA_MOUNTED)) { 
            return true; 
        } 
        return false; 
    } 
 
    public static long getSDAllSizeKB() { 
        // get path of sdcard  
        File path = Environment.getExternalStorageDirectory(); 
        StatFs sf = new StatFs(path.getPath()); 
        // get single block size(Byte)  
        long blockSize = sf.getBlockSize(); 
        // 获取所有数据块数  
        long allBlocks = sf.getBlockCount(); 
        // 返回SD卡大小  
        return (allBlocks * blockSize) / 1024; // KB  
    } 
 
    /**
     * free size for normal application
     * 
     * @return
     */ 
    public static long getSDAvalibleSizeKB() { 
        File path = Environment.getExternalStorageDirectory(); 
        StatFs sf = new StatFs(path.getPath()); 
        long blockSize = sf.getBlockSize(); 
        long avaliableSize = sf.getAvailableBlocks(); 
        return (avaliableSize * blockSize) / 1024;// KB  
    } 
 
    // =====================File Operation==========================  
    public static boolean isFileExist(String director) { 
        File file = new File(Environment.getExternalStorageDirectory() 
                + File.separator + director); 
        return file.exists(); 
    } 
 
    /**
     * create multiple director
     * 
     * @param path
     * @return
     */ 
    public static boolean createFile(String director) { 
        if (isFileExist(director)) { 
            return true; 
        } else { 
            File file = new File(Environment.getExternalStorageDirectory() 
                    + File.separator + director); 
            if (!file.mkdirs()) { 
                return false; 
            } 
            return true; 
        } 
    } 
 
    public static File writeToSDCardFile(String directory, String fileName, 
            String content, boolean isAppend) { 
        return writeToSDCardFile(directory, fileName, content, "", isAppend); 
    } 
 
    /**
     * 
     * @param director
     *            (you don't need to begin with
     *            Environment.getExternalStorageDirectory()+File.separator)
     * @param fileName
     * @param content
     * @param encoding
     *            (UTF-8...)
     * @param isAppend
     *            : Context.MODE_APPEND
     * @return
     */ 
    public static File writeToSDCardFile(String directory, String fileName, 
            String content, String encoding, boolean isAppend) { 
        // mobile SD card path +path  
        File file = null; 
        OutputStream os = null; 
        try { 
            if (!createFile(directory)) { 
                return file; 
            } 
            file = new File(Environment.getExternalStorageDirectory() 
                &nb

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