• android 文件操作类简易总结


    android 文件操作类(参考链接)

    http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html

    package com.android.wang.androidstudio;
    import org.apache.http.util.EncodingUtils;
    import android.annotation.TargetApi;
    import android.content.Context;
    import android.os.Build;
    import android.os.Environment;
    import android.os.StatFs;
    import android.text.format.Formatter;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    /**
     * Created by Administrator on 2016/4/29.
     */
    public class FileHelper {
        private Context context;
        private String SDPATH;//SD卡路径
        private String FILESPATH;//文件路径
        public FileHelper(Context context)
        {
            this.context= context;
            SDPATH= Environment.getExternalStorageDirectory().getPath();
            FILESPATH=this.context.getFilesDir().getPath();
        }
        public boolean SDCardState(){ //判断SD卡是否可读写
            if(Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED)){//表示SDCard存在并且可以读写
                return true;
            }else{
                return false;
            }
        }
        public String SDCardPath() {//SDCard路径
            if (SDCardState()) {
                SDPATH = Environment.getExternalStorageDirectory().getPath();
                return SDPATH;
            } else {
                return null;
            }
        }
        @TargetApi(18)
        private String GetSDAvailableSize() {//获取SD可用内存大小
            long blockSize=0;
            long availableBlocks= 0;
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            if(Build.VERSION.SDK_INT>Build.VERSION_CODES.GINGERBREAD)
            {
                 blockSize = stat.getBlockSizeLong();
                 availableBlocks = stat.getAvailableBlocksLong();
            }
            else {
                blockSize = stat.getBlockSize();
                availableBlocks = stat.getAvailableBlocks();
            }
            return Formatter.formatFileSize(context, blockSize * availableBlocks);
        }
        @TargetApi(18)
        private String GetSDTotalSize() { //获取SD总内存大小
            long blockSize = 0;
            long totalBlocks = 0;
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            if(Build.VERSION.SDK_INT>Build.VERSION_CODES.GINGERBREAD)
            {
                blockSize = stat.getBlockSizeLong();
                totalBlocks = stat.getBlockCountLong();
            }
            else {
                blockSize = stat.getBlockSize();
                totalBlocks = stat.getBlockCount();
            }
    
            return Formatter.formatFileSize(context, blockSize * totalBlocks);
        }
        @TargetApi(18)
        private String getRomTotalSize() {//获取机身可用内存
            File path = Environment.getDataDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long totalBlocks = stat.getBlockCount();
            return Formatter.formatFileSize(context, blockSize * totalBlocks);
        }
        @TargetApi(18)
        private String getRomAvailableSize() { //获得机身可用内存
            File path = Environment.getDataDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long availableBlocks = stat.getAvailableBlocks();
            return Formatter.formatFileSize(context, blockSize * availableBlocks);
        }
        public File CreateDirOnSDCard(String dir)//在SD上创建目录
        {
            if(SDCardState()==true) {
                File dirFile = new File(SDPATH + File.separator + dir + File.separator);
                dirFile.mkdirs();//创建多级目录创建单级目录用mkdir();
                return dirFile;
            }
            else
            {
                return null;
            }
        }
        public File CreateFileOnSDCard(String fileName) throws IOException { //SD上创建文件(在类和方法后面用throws,直接抛出异常就要用到throw)
    
            File file = new File(SDPATH + File.separator +  fileName);
            if (!file.exists()) {
    
                file.createNewFile();
    
            }
            return file;
        }
        public File CreateFileOnSDCard(String dir,String fileName) throws IOException { //SD上的文件目录下创建文件(在类和方法后面用throws,直接抛出异常就要用到throw)
    
            File file = new File(SDPATH + File.separator + dir + File.separator +  fileName);
            if (!file.exists()) {
                file.createNewFile();
    
            }
            return file;
        }
        public boolean fileIsExists(String strFile)//判断文件是否存在
        {
            try
            {
                File f=new File(strFile);
                if(!f.exists())
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                return false;
            }
            return true;
        }
        public  File CreateDirOnRom(String dir)//在ROM上创建文件目录
        {
                File dirFile = new File(FILESPATH + File.separator+dir);
                dirFile.mkdirs();
                return dirFile;
        }
        public  File CreateFileOnRom(String fileName)throws IOException//在ROM上创建文件目录
        {
            File file = new File(FILESPATH  + File.separator +  fileName);
            if (!file.exists()) {
                file.createNewFile();
            }
            return file;
        }
        public void deleteFile(File file) { //删除文件或文件目录
            if (file.exists()) { // 判断文件是否存在
                if (file.isFile()) { // 判断是否是文件
                    file.delete(); // 删除文件;
                } else if (file.isDirectory()) { // 否则如果它是一个目录
                    File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
                    for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
                        this.deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
                    }
                }
                file.delete();
            } else {
            }
        }
        public static String InputStreamTOString(InputStream in) throws Exception{
            int BUFFER_SIZE=4096;
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] data = new byte[BUFFER_SIZE];
            int count = -1;
            while((count = in.read(data,0,BUFFER_SIZE)) != -1)
                outStream.write(data, 0, count);
    
            data = null;
            return new String(outStream.toByteArray(),"ISO-8859-1");
        }
        public static InputStream StringTOInputStream(String in) throws Exception{
    
            ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("ISO-8859-1"));
            return is;
        }
        public File WriteDataToSDCard(String path, String fileName, String str)
        {
            File file = null;
            OutputStream output = null;
            try {
                InputStream data = StringTOInputStream(str);
                CreateDirOnSDCard(path);  //创建目录
                file = CreateFileOnSDCard(path,fileName );  //创建文件
                output = new FileOutputStream(file);
                byte buffer[] = new byte[2*1024];          //每次写2K数据
                int temp;
                while((temp = data.read(buffer)) != -1 )
                {
                    output.write(buffer,0,temp);
                }
                output.flush();
            } catch (Exception e) {
                e.printStackTrace();
            }
            finally{
                try {
                    output.close();    //关闭数据流操作
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return file;
        }
        public String ReadSDFile1(String fileName) {
    
            StringBuffer sb = new StringBuffer();
            File file = new File(SDPATH + File.separator+ fileName);
            try {
                FileInputStream fis = new FileInputStream(file);
                int c;
                while ((c = fis.read()) != -1) {
                    sb.append((char) c);
                }
                fis.close();
    
            } catch (FileNotFoundException e) {
    
                e.printStackTrace();
    
            } catch (IOException e) {
    
                e.printStackTrace();
    
            }
            return sb.toString();
    
        }
        public String ReadSDFile2(String fileName) {
    
            String sb = new String();
            File file = new File(SDPATH + "//" + fileName);
            try {
                FileInputStream fis = new FileInputStream(file);
                int length = fis.available();
                byte[] buffer = new byte[length];
                fis.read(buffer);
                sb = EncodingUtils.getString(buffer, "UTF-8");
                fis.close();
    
            } catch (FileNotFoundException e) {
    
                e.printStackTrace();
    
            } catch (IOException e) {
    
                e.printStackTrace();
    
            }
            return sb.toString();
        }
        //在默认Rom目录下创建文件并写数据(mang.txt,"内容")可在data/data/mang.txt
        public void WriteFileOnRom(String fileName,String writestr){
            try{
                FileOutputStream fout =context.openFileOutput(fileName,context.MODE_PRIVATE);
                byte [] bytes = writestr.getBytes();
                fout.write(bytes);
                fout.close();
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
    
        //读数据
        public String ReadFileOnRom(String fileName) {
            String res="";
            try{
                FileInputStream fin = context.openFileInput(fileName);
                int length = fin.available();
                byte [] buffer = new byte[length];
                fin.read(buffer);
                res = EncodingUtils.getString(buffer, "UTF-8");
                fin.close();
            }
            catch(Exception e){
                e.printStackTrace();
            }
            return res;
    
        }
        //写数据到SD中的文件
        public void WriteFileSdcardFile(String fileName,String write_str) throws IOException{
            try{
                fileName=fileName+SDPATH;
                FileOutputStream fout = new FileOutputStream(fileName);
                byte [] bytes = write_str.getBytes();
                fout.write(bytes);
                fout.close();
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
        //读SD中的文件
        public String readFileSdcardFile(String fileName) throws IOException{
            String res="";
            if(SDCardState()==false)
            {
                res="NO";
                return res;
            }
            try{
                FileInputStream fin = new FileInputStream(fileName);
                int length = fin.available();
                byte [] buffer = new byte[length];
                fin.read(buffer);
                res = EncodingUtils.getString(buffer, "UTF-8");
                fin.close();
            }
    
            catch(Exception e){
                e.printStackTrace();
            }
            return res;
        }
        public String readSDFile(String fileName) throws IOException {
    
            File file = new File(fileName);
            String res="";
            FileInputStream fis = new FileInputStream(file);
            int length = fis.available();
            byte [] buffer = new byte[length];
            fis.read(buffer);
            res = EncodingUtils.getString(buffer, "UTF-8");
            fis.close();
            return res;
        }
        //写文件
        public void writeSDFile(String fileName, String write_str) throws IOException{
    
            File file = new File(fileName);
    
            FileOutputStream fos = new FileOutputStream(file);
    
            byte [] bytes = write_str.getBytes();
    
            fos.write(bytes);
    
            fos.close();
        }
    }
    

      

  • 相关阅读:
    Tiny模板引擎之开发工具
    Tiny框架应用实践之Tiny社区
    TINY框架:组件化的J2EE开发框架
    TinyRMI---RMI的封装、扩展及踩到的坑的解决
    新手如何入门
    从应用示例来认识Tiny框架
    图形化插件对Eclipse的版本要求
    可不可以在局域网编译TINY?
    批量创建的方法
    不在框架中,利用Django的models操作
  • 原文地址:https://www.cnblogs.com/wangboke/p/5446673.html
Copyright © 2020-2023  润新知