【204天】黑马程序员27天视频学习笔记【Day19-下】
叨逼叨两句
今天一下敲定了好几件事,不错不错,离全部完事越来越快了,哈哈
今天七夕,提前精心准备的礼物让她很开心,我也很高兴,果然,即便在一起的概率很低,但和她的交谈依然能给我那种发自内心的快乐,这就是爱情吧。
我一定要出人头地,完成对她的所有承诺。
从小目标做起,用5年赚第一个100万。
19-14:File类的概述和构造方法
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()); } }
19-(15-18):File类的功能
创建
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()); } }
19-19:输出指定目录下指定后缀的文件名
学递归时再搞定这个知识点
19-20:文件名称过滤器的概述及使用
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); } } }