taoxiuyi0 2019-06-21
今天一下敲定了好几件事,不错不错,离全部完事越来越快了,哈哈
今天七夕,提前精心准备的礼物让她很开心,我也很高兴,果然,即便在一起的概率很低,但和她的交谈依然能给我那种发自内心的快乐,这就是爱情吧。
我一定要出人头地,完成对她的所有承诺。
从小目标做起,用5年赚第一个100万。
File更应该称之为路径
File有绝对路径和相对路径
File构造方法
File(String pathname):根据一个路径得到File对象
package com.test.demo001;
import java.io.File;
public class Demo009 {
    public static void main(String[] args) {
        File file = new File("src/com/test/demo001/ss");
        //windows系统的文件路径用\【字符串中加转义字符\,即"src\\com\\test\\demo001\\ss"】
        //mac使用/
        System.out.println(file.exists());
        
        File file2 = new File("src/xx.txt");
        System.out.println(file2.exists());
        File file3 = new File("kk");
        System.out.println(file3.exists());
        File file4 = new File("kk.txt");
        System.out.println(file4.exists());    
    }
}File(String parent,String child):根据一个目录和一个子文件/目录得到File对象
package com.test.demo001;
import java.io.File;
public class Demo009 {
    public static void main(String[] args) {
        File file = new File("/Users/wangtao/GitHub/mycode/Test_Regex/src/xx.txt");
        System.out.println(file.exists());
        
        String parent = "/Users/wangtao/GitHub/mycode/Test_Regex/src/";
        String child = "xx.txt";
        File file1 = new File(parent,child);
        System.out.println(file1.exists());
    }
}File(File parent,String child) :根据一个父File对象和一个子文件/目录得到File对象
package com.test.demo001;
import java.io.File;
public class Demo009 {
    public static void main(String[] args) {
        File file = new File("/Users/wangtao/GitHub/mycode/Test_Regex/src/xx.txt");
        System.out.println(file.exists());
        
        //将parent封装成File对象可以使用File的方法,比直接让它是个字符串要好
        File parent2 = new File("/Users/wangtao/GitHub/mycode/Test_Regex/src/");
        String child2 = "xx.txt";
        File file2 = new File(parent2,child2);
        System.out.println(file2.exists());
        System.out.println(parent2.exists());
    }
}public boolean createNewFile():创建文件,如果没有这个文件返回true并创建,如果有这个文件了就返回false不再创建。
public boolean mkdir():创建单级文件夹,如果存在这样的文件夹,就返回false不创建了,如果不存在这样的文件夹,就返回true并创建。
public boolean mkdirs():创建多级文件夹,父文件夹若不存在会被创建出来。
package com.test.demo001;
import java.io.File;
import java.io.IOException;
public class Demo009 {
    public static void main(String[] args) throws IOException{
        File file = new File("aaa.txt");
        System.out.println(file.createNewFile());
        
        File file2 = new File("aaa");
        System.out.println(file2.mkdir());
        
        File file3 = new File("sss/ddd/fff/");
        System.out.println(file3.mkdirs());
    }
}重命名在相同路径下,就是改名;在不同路径下,就是改名并剪切。
package com.test.demo001;
import java.io.File;
import java.io.IOException;
public class Demo009 {
    public static void main(String[] args) throws IOException{
        //相同路径下
        //重命名文件
        File file1 = new File("aaa.txt");
        File file2 = new File("ZZZ.txt");
        System.out.println(file1.renameTo(file2));
        //重命名文件夹
        File file3 = new File("aaa");
        File file4 = new File("ZZZ");
        System.out.println(file3.renameTo(file4));
        
        //不同路径下
        //重命名文件
        File file5 = new File("ZZZ.txt");
        File file6 = new File("src/com/test/demo001/OOO.txt");
        System.out.println(file5.renameTo(file6));
        
        //重命名文件夹
        File file7 = new File("ZZZ");
        File file8 = new File("src/com/test/demo001/lll");
        System.out.println(file7.renameTo(file8));
        
    }
}删除不走回收站
删除文件夹时,文件夹必须是空的,windows系统能删带文件的文件夹,是因为它做了一个遍历
package com.test.demo001;
import java.io.File;
import java.io.IOException;
public class Demo009 {
    public static void main(String[] args) throws IOException{
        File file1 = new File("src/com/test/demo001/ss");
        System.out.println(file1.delete());
        
        File file2 = new File("sss");
        System.out.println(file2.delete());
        
    }
}public boolean isDirectory():判断是否为目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWriter():判断是否可写
public boolean isHidden():判断是否隐藏
windows系统中,认为所有文件都是可读的,所以你用setReadable设置为false没有用。Linux则有用。
可读不是单纯的指可以打开文件,而是指能用IO流读取文件。
package com.test.demo001;
import java.io.File;
import java.io.IOException;
public class Demo009 {
    public static void main(String[] args) throws IOException{
        File file1 = new File("kk");
        System.out.println(file1.isDirectory());
        System.out.println(file1.isFile());
        System.out.println(file1.exists());
        file1.setReadable(false);
        System.out.println(file1.canRead());
        file1.setWritable(true);
        System.out.println(file1.canWrite());
        System.out.println(file1.isHidden());
    }
}public String getAbsolutePath():获取绝对路径
public String getPath():获取路径
public String getName():获取名称
public long length():获取长度【字节数】
public long lastModified():获取最后一次的修改时间,毫秒值
public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
package com.test.demo001;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo009 {
    public static void main(String[] args) {
        File file = new File("kk");
        File file2 = new File("/Users/wangtao/GitHub/mycode/Test_Regex/kk");
//        System.out.println(file.getAbsolutePath());
//        System.out.println(file2.getAbsolutePath());
        
//        System.out.println(file.getPath());
//        System.out.println(file2.getPath());
        
//        System.out.println(file.getName());
//        System.out.println(file2.getName());
        
//        System.out.println(file.length());
        
//        System.out.println(file.lastModified());
//        
//        Date d = new Date(file.lastModified());
//        System.out.println(d);
//        
//        SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");
//        System.out.println(sdf.format(d));
        File file3 = new File("src/com/test/demo001");
        String[] str = file3.list();
        for (String s : str) {
            System.out.println(s);
        }
        
        File file4 = new File("src/com/test/demo001");
        File[] files = file4.listFiles();
        for (File f : files) {
            System.out.println(f);
        }
        
        File file5 = new File("src/com/test/demo001/Demo002.java");
        System.out.println(file5.getAbsolutePath());
        
        
        
    }
}学递归时再搞定这个知识点
package com.test.demo001;
import java.io.File;
import java.io.FilenameFilter;
public class Demo009 {
    public static void main(String[] args) {
        File file = new File("src/com/test/demo001/");
        String[] arr = file.list(new FilenameFilter(){
            public boolean accept(File dir,String name){
                File file = new File(dir,name);
                return file.isFile()&&file.getName().endsWith(".txt");//只有return true的才能装进数组
            }
        });
    
        for (String s : arr) {
            System.out.println(s);
        }
    }
}