DAY04

今天是吴威讲课的最后一天,唉,最后一节课老师终于请我们班喝饮料了~今天讲了好多啊,话不多说,直接上代码~
java.io.File => 文件
File file = new File(“文件路径”);
File file = new File(“父目录”,”文件名”);
File file = new File(父目录对象,”文件名”);
*:相对路径 or 绝对路径

import java.io.*;
public class TestFile{
    public static void main(String[] args){
        File x = new File("腾讯\\qq.jpg");
        File y = new File("C:\\Users\\5v\\Desktop\\Java03\\day04");
        File z = new File("腾讯/qq.jpg");

        File ok = new File("腾讯" + File.separator + "qq.jpg");

        File ok2 = new File("腾讯","qq.jpg");

        File dir = new File("腾讯","吉祥物部");
        File ok3 = new File(dir,"qq.jpg");





    }
}

能新建文件夹就能删除文件夹

import java.io.*;
public class TestDelete{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);


        File file = new File("qq.jpg");
        file.delete();
    }
}

当一个文件夹是空的时候,可以直接删除,如果里面有内容则需先把内容删除再删文件夹

import java.io.*;
public class TestListFiles{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);


        File dir = new File("pics");
        File[] fs = dir.listFiles();
        for(File f : fs){//foreach   forin
            f.delete();
        }
    }
}

*: static listRoots() :
*: 当前计算机的所有根目录

*: listFiles()
*: 列出一个目录当中的所有文件

*: delete()
*: 它不会把文件放入回收站的 而是直接彻底删除

*: renameTo():
*: a.renameTo(c);
*: a要求必须存在 c要求必须不存在

*: setLastModified() :
*: 设置文件的最后一次修改时间

*: 方法递归调用
在一个方法执行过程当中 有条件的再去调用这个方法自身~

IBM 
    请计算144-237之间所有整数累加的和~[禁用循环]
public class Test{
    public static void main(String[] args){
        int sum = 0;
        for(int i = 144;i<=237;i++){
            sum += i;
        }
        System.out.println(sum);//17907

        /*
            get(144) = 144 + get(145);
            get(145) = 145 + get(146);
            .....
            get(236) = 236 + get(237);
            get(237) = 237;
        */

        System.out.println(get(144));//17907
    }

    public static int get(int x){
        if(x == 237)
            return 237;
        return x + get(x+1);
    }
}

老师曾用这个下面这个代码解决了公司一个员工给N张照片命名的问题,果然科技改变生活……

import java.io.*;
public class ExecRenameTo{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);

        File dir = new File("pics");
        File[] fs = dir.listFiles();

        int id = 1;

        for(File f : fs){
            File t = new File(dir,"QD_"+id++ + ".jpg");
            f.renameTo(t);
        }
    }
}

吴威老师说他们交项目的时候都会修改每个文件的最后修改时间,怕同行获取部分开发信息,开发顺序啥的,而且在其他方面,修改最后修改时间会带来很多便利~
以下代码还涉及到这些知识点:

时间戳 千年虫 早期设计上的缺陷
负数 1970.1.1 整数

import java.io.*;
public class TestSetLastModified{
    public static void main(String[] args){
        File file = new File("ToEveryone.txt");
        long time = System.currentTimeMillis();
        System.out.println(time);

        file.setLastModified(time - 5L*365*24*60*60*1000);
    }
}

每隔5s修改指定的文件的名称为随机数

import java.io.*;
public class TestRenameTo{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);

        File old = new File("花花花花花.jpg");
        while(true){
            Thread.sleep(500);
            File tar = new File((int)(Math.random()*1000)+".jpg");

            old.renameTo(tar);
            old = tar;
        }
    }
}
import java.io.*;
public class TestGogo{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);
        File dir = new File("D:\\MyDrivers");
        kill(dir);
    }
    //核心:对付一个怪物(目录的过程)的过程
    //这个方法需要一个参数 就是要对付个那个目录
    public static void kill(File tar){
        File[] fs = tar.listFiles();
        for(File f : fs){
            if(f.isFile()){
                f.delete();//直接删除
            }else{
                //它是个目录
                kill(f);
            }
        }
        tar.delete();
    }
}
import java.io.*;
public class TestGogo{
    public static void main(String[] args)throws Exception{
        Thread.sleep(5000);
        File dir = new File("D:\\MyDrivers");
        kill(dir);
    }
    //核心:对付一个怪物(目录的过程)的过程
    //这个方法需要一个参数 就是要对付个那个目录
    public static void kill(File tar){
        File[] fs = tar.listFiles();
        for(File f : fs){
            if(f.isFile()){
                f.delete();//直接删除
            }else{
                //它是个目录
                kill(f);
            }
        }
        tar.delete();
    }
}

以下代码是用来保护电脑里的文件的,如果有人在你去上厕所的时候插入了U盘,那么他的U盘里的东西会瞬间消失~

import java.io.*;
import java.util.*;
import javax.swing.*;
public class TestListRoots{
    public static void main(String[] args)throws Exception{
        //得到计算机所有根目录
        File[] rts = File.listRoots();

        while(true){
            //Thread.sleep(1000);
            File[] nrts = File.listRoots();

            if(rts.length != nrts.length){
                JOptionPane.showMessageDialog(null,"有外来生物入侵");
                //null在当前整个屏幕显示对话框
                LinkedList<File> old = new LinkedList<>();
                Collections.addAll(old,rts);
                //往old 里添加 rts 的元素
                LinkedList<File> now = new LinkedList<>();
                Collections.addAll(now,nrts);

                //从now当中删除所有old里存在的内容
                now.removeAll(old);
                //到这里的时候 now里面就是u盘的盘符
                for(File wdmb : now){
                    //wdmb => e:\\
                    kill(wdmb);
                    JOptionPane.showMessageDialog(null,"报告领导 敌军:"+wdmb+"已经阵亡~");
                }
            }
        }
    }

    //递归调用的方法:
    public static void kill(File tar){
    0   File[] fs = tar.listFiles();
        for(File f : fs){
            if(f.isFile()){
                f.delete();//直接删除
            }else{
                //它是个目录
                kill(f);
            }
        }
        tar.delete();
    }
}

老师的玩笑话
到这里,为期4天的课程算是结束了…….
这个笔记我应该昨天写的,练小提琴还有玩吉他和尤克里里太过了,就没有时间写了,今天去万象城买了800RMB的机械键盘,本来想当作自己努力敲代码的动力,可是我还是没忍住…….不过键盘真的是漂亮~~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值