栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java对文件的处理

Java 更新时间:发布时间: 百科书网 趣学号

开发工具与关键技术:IDEA  Java

撰写时间:2021/9/18  

   我相信很多人初学编程阶段都会用到B站,或者要学习补充什么知识时都会看一下b站的学习教程,我用电脑的浏览器直接看B站太麻烦,一般我都是用微软商店中的b站可以直接下载视频,但是微软PC版的B站软件播放器很垃圾,我想用喜欢的播放器播放视频这样我每次都不用打开b站再进行学习,但是问题来了:它的文件名称是这样的

当我把文件放到播放器中,它们不会自动排序,顺序是乱的,我看完一集要我还要自己找下一集的文件在哪里(这样会降低学习效率)。

所以我写了一段能对B站文件进处理的代码,这些代码并不单能对B战的文件进行处理,修改一下参数或更改方法的调用还能有其它用途。

 如下图1所示我定义了一个递归方法,该方法只有两个参数一个是你需要读取的文件的根目录,一个是你要保存的最终目录。

 

 

这个方法可以读取该目录下的所有文件,利用增强for去遍历所有的文件包括目录,

判断如果是目录继续调用方法递归,如果是文件,就调用判断是否为视频文件的方法判断该文件是否为视频文件,该方法如图2所示

 

如果是视频,我就要开始截取它文件的序号,这要用到另外一个方法,如下图三

 

把文件的序号截取到了之后,就把它放到输出文件的名称之中,然后在序号的后面加上符合视频性质的名字。给你们看一下执行结果如图4

这些并不是全部,它还可以进行其它操作,比如读取一个文件夹中所有的视频并且限制视频大小,读取文件夹中所有的图片等等,下图就是封装的两个方法,一个是判断文件大小的,一个是判断文件是否为图片文件

 

 最后我发出这个案例的全部源码

public class GetMP4 {
    public static void main(String[] args) throws
            IOException {
        //多级文件的复制
            File copyFile=new File("C:\Users\yasuo\AppData\Local\Packages\36699Atelier39" +
                    ".forWin10_pke1vz55rvc1r\LocalCache\BilibiliDownload\93195247");//复制文件的路径
              //最终路径
              
              File NowFile=new File("F:\Java进阶");
              //首先创建  判断该目录下是 否有该文件
              if (!NowFile.exists()){ //如果是空就创建
                  NowFile.mkdir();
              }//创建成功
              ToAddFileList(copyFile,NowFile); //传入该文件路径判断子文件
              // 将视频全部读取到 同一个格式中
    }

    
    //创建一个递归方法 获取到 所有文件的路径,
    public static void ToAddFileList(File file,File NowFile) throws
            IOException {
        File[] listFile=file.listFiles();
        String OriginalPathName=file.getName();
        if(listFile!=null){
            for (File srcF:listFile){
                //判断文件是否为目录或是数据文件
                if (srcF.isDirectory()){
               
                    //如果是目录就继续遍历文件
                    ToAddFileList(srcF,NowFile);
                }else {
                    //首先判断是否是视频文件
                    if (isNotMP4(srcF)){ //判断是否为视频文件
                       // if(checkFileSize(30,srcF.length(),"M")){//判断文件字节
                        String SequenceName = GetBiliBiliMp4Num(srcF, OriginalPathName);
                        BufferedInputStream bis=new BufferedInputStream(new FileInputStream(srcF));
                            BufferedOutputStream bos=
                          new BufferedOutputStream(new FileOutputStream(NowFile+"\"+SequenceName+
                                  "集Java进阶.mp4"));
                            //用字节数组的格式添加数据
                            byte[] bytes=new byte[1024];
                            int len;
                            while ((len=bis.read(bytes))!=-1){
                                bos.write(bytes,0,len);
                            }
                            bos.close();
                            bis.close();
                      //  }
                    }
                }
            }
        }
    }
  //判断是否是视频文件
    public static boolean isNotMP4(File file)  {
        String reg = "(mp4|flv|avi|rm|rmvb|wmv)";
        Pattern p = Pattern.compile(reg);
        return  p.matcher(file.getName()).find();
    }

    // 判断图片文件
   public static boolean isNotImg(File file){
        String reg="(gif|jpg|jpeg|bmp|png)";
       Pattern p=Pattern.compile(reg);
        return p.matcher(file.getName()).find();
   }
    
    public static boolean checkFileSize(Integer MinLen,Integer MaxLen, Long size,String unit) {
        double fileSize = 0;// 这个实际文件大小除去计量单位的初值
        switch (unit.toUpperCase()) {
            case "B":
                fileSize = (double) size;
                break;
            case "K":
                fileSize = (double) size / 1024;
                break;
            case "M":
                fileSize = (double) size / 1048576;
                break;
            case "G":
                fileSize = (double) size / 1073741824;
                break;
        }
        if (MinLen!=null&&MaxLen==null){
            return (fileSize>MinLen);//判断
        } if (MinLen==null&&MaxLen!=null){
            return (fileSize 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273739.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号