一个文件处理的工具类(●’◡’●)

public class FileUtil {    private static final String TAG = "--FileUtil--";    public static final String separator = "/";    // ==================================================关于文件处理====================================================    public static boolean isPathStringValid(String path) {        if (null == path || path.length() == 0) {            return false;        }        if (path.contains(":") || path.contains("*") || path.contains("?")                || path.contains("\"") || path.contains("<")                || path.contains(">") || path.contains("|")) {            Log.w(TAG, "filename can not contains:*:?\"<>|");            return false;        }        return true;    }    public static boolean isPath(String path) {        if (path.contains(separator) || path.contains("\\")) {            return true;        }        return false;    }    public static String getPath(String path) {        int la = path.lastIndexOf(separator);        String subPath = path.substring(0, la);        return subPath;    }    /**     * @param path      需要转换的路径或文件名     * @param defPosfix 默认后缀名,当path不带后缀名时,则自动将其加上     * @return     */    public static String convertValidFilePath(String path, String defPosfix) {        String filePath = path;        if (path.contains(separator) || path.contains("\\")) {            int la = filePath.lastIndexOf(".");            if (la < 0) {                filePath = path + defPosfix;            } else {                String temp = filePath.substring(la);                if (temp.contains(separator) || temp.contains("\\")) {                    // "."是目录名的一部分而不是后缀名的情况                    filePath = path + defPosfix;                }                // else fileName = fileName            }        } else {            if (!path.contains(".")) // 没有有后缀            {                filePath = filePath + defPosfix;            }        }        return filePath;    }    public static boolean isFileExists(String file) {        try {            File f = new File(file);            if (!f.exists()) {                return false;            }        } catch (Exception e) {            e.printStackTrace();            return false;        }        return true;    }    public static boolean isFileValid(File f) {        if (!f.exists()) {            try {                f.createNewFile();            } catch (IOException e) {                return false;            }            f.delete();        }        return true;    }    public static boolean isFileValid(File parent, String name) {        File f = new File(parent, name);        return isFileValid(f);    }    /**     * 删除存在的文件     *     * @param filePath     */    public static void delExistFile(String filePath) {        File f = new File(filePath);        if (f.exists())            f.delete();    }    /**     * BH中的日志保存     *     * @param path     */    public static boolean createDir(String path) {        if (isSDCardExist()) {            return false;        }        File f = new File(path);        if (!f.exists()) {            return f.mkdirs();        }        return true;    }    public static void createDir(File f) {        if (isSDCardExist()) {            return;        }        if (!f.exists()) {            try {                f.mkdirs();            } catch (Exception e) {                e.printStackTrace();            }        }    }    /**     * 关闭bufferReader     *     * @param br     */    public static void closeReader(Reader br) {        if (br != null) {            try {                br.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * 关闭Writer     */    public static void closeWriter(Writer wr) {        if (wr != null) {            try {                wr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * flush Writer     */    public static void flushWriter(Writer wr) {        if (wr != null) {            try {                wr.flush();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * 输入流的关闭     *     * @param in     */    public static void closeInputStream(InputStream in) {        if (in != null) {            try {                in.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * 输出流的关闭     *     * @param out     */    public static void closeOutputStream(OutputStream out) {        if (out != null) {            try {                out.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * 文件管道的关闭     */    public static void closeFileChannel(FileChannel chl) {        if (chl != null) {            try {                chl.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * RandomAccessFile的关闭     *     * @param f RandomAccessFile对象     */    public static void closeRandomAccessFile(RandomAccessFile f) {        if (f != null) {            try {                f.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * Socket的关闭     *     * @param s Socket对象     */    public static void colseSocket(Socket s) {        if (s != null) {            try {                s.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /**     * LocalSocket的关闭     *     * @param s Socket对象     */    public static void colseLocalSocket(LocalSocket s) {        if (s != null) {            try {                s.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    public static void deleteFile(File file) {        if (file.exists()) { // 判断文件是否存在            if (file.isFile()) { // 判断是否是文件                file.delete(); // delete()方法 你应该知道 是删除的意思;            } else if (file.isDirectory()) { // 否则如果它是一个目录                File files[] = file.listFiles(); // 声明目录下所有的文件 files[];                for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件                    deleteFile(files[i]); // 把每个文件 用这个方法进行迭代                }            }            file.delete();        } else {            Log.e(TAG, "文件不存在!");        }    }    /**     * 拷贝文件     *     * @param s 源文件     * @param t 目标文件     */    public static void copyFile(File s, File t) {        FileInputStream fi = null;        FileOutputStream fo = null;        FileChannel in = null;        FileChannel out = null;        try {            if (!t.exists()) {                t.createNewFile();            }            fi = new FileInputStream(s);            fo = new FileOutputStream(t);            in = fi.getChannel();            out = fo.getChannel();            // 连接两个通道,并且从in通道读取,然后写入out通道            in.transferTo(0, in.size(), out);        } catch (IOException e) {            e.printStackTrace();        } finally {            closeOutputStream(fo);            closeInputStream(fi);            closeFileChannel(in);            closeFileChannel(out);        }    }    public static void copyInputToFile(InputStream in, String path) {        BufferedInputStream bis = null;        FileOutputStream fos = null;        try {            byte[] buffer = new byte[10 * 1024];            bis = new BufferedInputStream(in);            fos = new FileOutputStream(path);            int a = bis.read(buffer, 0, buffer.length);            while (a != -1) {                fos.write(buffer, 0, a);                fos.flush();                a = bis.read(buffer, 0, buffer.length);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            closeOutputStream(fos);            closeInputStream(bis);            closeInputStream(in);        }    }    /**     * 是否存在SD卡     */    public static boolean isSDCardExist() {        return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);    }}

更多相关文章

  1. streamingAssetsPath 内文件读取
  2. Android(安卓)ADB命令大全
  3. file system
  4. MediaRecorder和MediaPlayer的简单使用
  5. 编译android4.0出现jdk版本问题
  6. Android(安卓)蓝牙客户端实现
  7. ant打包游戏时报错
  8. 三、ANDROID SDK下文件解析
  9. Android--电商首页的分页导航

随机推荐

  1. android实现圆角矩形
  2. 专家专栏:Android层次化安全架构及核心组
  3. Android之系统自带的文字外观设置及实际
  4. android 牛人必修 ant 编译android工程
  5. 【转】Android(安卓)xml资源文件中@、@an
  6. 《Android/OPhone开发完全讲义》连载(4):And
  7. Android(安卓)的消息队列模型
  8. Android(安卓)Studio更新升级方法
  9. [转]Android的应用程序结构分析:HelloActi
  10. Android(安卓)网络协议