• 技术文章 >Java >java教程

    java编写的文件管理器代码分享

    高洛峰高洛峰2017-01-21 14:29:10原创1317

    比较适合新手。逻辑上仍然有点问题。可以用于学习java文件操作

    下载地址:http://yun.baidu.com/share/link?shareid=4184742416&uk=1312160419

    下面是主要的JAVA文件操作代码

    FileHelp.java

    package self.yy.filesystem.fileutil;
      
    import android.content.Context;
    import android.util.Log;
    import android.widget.Toast;
      
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.URI;
    import java.nio.channels.FileChannel;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
      
    /**
     * 文件的相关帮助类
     */
    public class FileHelp {
      private static final String TAG = "FileHelp";
      
      public static final String JPG = ".jpg";
      public static final String PNG = ".png";
      
      public static final String MP3 = ".mp3";
      public static final String MP4 = ".mp4";
      public static final String APK = ".apk";
      
      //上下文
      private static Context context;
      
      /**
       * txt文本
       */
      public static int ISTXT = 0;
      
      private static String TXT = ".txt";
      
      /**
       * 文件删除
       */
      public static boolean deletfile(File file) {
        if (file.isDirectory()) {
          if (file.listFiles().length > 0) {
            for (File i : file.listFiles()) {
              deletfile(i);
            }
          } else {
            file.delete();
          }
        } else {
          file.delete();
        }
        file.delete();
        return true;
      }
      
      /**
       * 新建文件夹
       * 返回true 文件创建成功
       * 返回false 文件创建失败 ->文件存在
       * 返回true 文件创建成功,返回false 文件创建失败 (文件存在、权限不够)
       */
      public static boolean creatFile(String filename, String path) {
        File file = new File(path + File.separator + filename);
        if (file.exists()) {
          return false;
        } else {
          file.mkdir();
          return true;
        }
      }
      
      /**
       * 创建自定义文件类型文件
       * 随意为文件夹
       * 0 txt文本
       *
       * @return boolean
       * 返回true 文件创建成功,返回false 文件创建失败 (文件存在、权限不够)
       * *
       */
      public static boolean creatFile(String filename, String path, int type) {
        String ptr = path + File.separator + filename;
        File file;
        switch (type) {
          case 0:
            file = new File(ptr + TXT);
            break;
          default:
            file = new File(ptr);
            break;
        }
        if (file.exists()) {
          return false;
        } else {
          try {
            file.createNewFile();
            return true;
          } catch (IOException e) {
            return false;
          }
        }
      }
      
      
      /**
       * 文件重名
       *
       * @param name 新创建的文件名
       * @param file 创建文件的地方
       */
      public static boolean reName(String name, File file) {
        String pathStr = file.getParent() + File.separator + name;
        return file.renameTo(new File(pathStr));
      }
      
      /**
       * 文件复制
       *
       * @param oldFile  要被复制的文件
       * @param toNewPath 复制到的地方
       * @return boolean trun 复制成功,false 复制失败
       * *
       */
      public static boolean copeyFile(File oldFile, String toNewPath) {
        String newfilepath = toNewPath + File.separator + oldFile.getName();
      
        File temp = new File(newfilepath);
        //判断复制到的文件路径是否存在相对文件,如果存在,停止该操作
        if (temp.exists()) {
          return false;
        }
        //判断复制的文件类型是否是文件夹
        if (oldFile.isDirectory()) {
          temp.mkdir();
          for (File i : oldFile.listFiles()) {
            copeyFile(i, temp.getPath());
          }
        } else {
          //如果是文件,则进行管道复制
          try {
            //从文件流中创建管道
            FileInputStream fis = new FileInputStream(oldFile);
            FileChannel creatChannel = fis.getChannel();
            //在文件输出目标创建管道
            FileOutputStream fos = new FileOutputStream(newfilepath);
            FileChannel getChannel = fos.getChannel();
            //进行文件复制(管道对接)
            getChannel.transferFrom(creatChannel, 0, creatChannel.size());
      
            getChannel.close();
            creatChannel.close();
            fos.flush();
            fos.close();
            fis.close();
          } catch (Exception e) {
            Log.i(TAG, "copey defeated,mebey file was existed");
            e.printStackTrace();
            return false;
          }
        }
        return true;
      }
      
      /**
       * 文件剪切
       *
       * @param oldFile   要被剪切的文件
       * @param newFilePath 剪切到的地方
       * @return boolean trun 剪切成功,false 剪切失败
       */
      public static boolean cutFile(File oldFile, String newFilePath) {
        if (copeyFile(oldFile, newFilePath)) {
          oldFile.delete();
          return true;
        } else {
          return false;
        }
      }
      
      
      /**
       * 获取对应文件类型的问件集
       *
       * @param dir 文件夹
       * @param type 文件类型,格式".xxx"
       * @return List<file> 文件集合
       */
      public static List<File> getTheTypeFile(File dir, String type) {
        List<File> files = new ArrayList<File>();
        for (File i : dir.listFiles()) {
          String filesTyepe = getFileType(i);
          if (type.equals(filesTyepe)) {
            files.add(i);
          }
        }
        return files;
      }
      
      /**
       * 获取文件类型
       *
       * @param file 需要验证的文件
       * @return String 文件类型
       * 如:
       * 传入文件名为“test.txt”的文件
       * 返回 .txt
       * *
       */
      public static String getFileType(File file) {
        String fileName = file.getName();
        if (fileName.contains(".")) {
      
          String fileType = fileName.substring(fileName.lastIndexOf("."),
              fileName.length());
          return fileType;
        } else {
          return null;
        }
      }
      
      
      /**
       * 获取文件最后操作时间类
       *
       * @param file 需要查询的文件类
       * @return “yy/MM/dd HH:mm:ss”的数据字符串
       * 如:
       * 14/07/01 01:02:03
       */
      public static String getCreatTime(File file) {
        long time = file.lastModified();
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
        String date = dateFormat.format(calendar.getTime());
        return date;
      }
      
    }

    以上所述就是本文的全部内容了,希望能够对大家学习java有所帮助。

    更多java编写的文件管理器代码分享相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 文件管理器
    上一篇:Android开发之简单文件管理器实现方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一起来分析java设计模式之单例• Java数据结构之单链表与OJ题• 一文搞懂Java线程池实现原理• Java总结分享之反射、枚举、Lambda表达式• 详细介绍Java正则表达式之单字符匹配和预定义字符
    1/1

    PHP中文网