1.File类的概述和构造方法
1.学习IO的目的就是处理电脑磁盘上的各种文件(文本,音频,视频),所有的程序都是加载带内存中进行的
而java的IO类可以完成内存和磁盘的数据交换功能,即通过io类把磁盘上的文件加载到内存中进行程序的处理
就是对文件的 增 删 改 查 File类操作文件的目的就是,我输出的结果和想要的内容可以永久的保存
2.File更应该叫做一个路径,文件路径或者文件夹路径
3.路径分为绝对路径和相对路径
4.绝对路径是一个固定的路径,从盘符开始D:\java\2.java基础\课件视频\day19\video
5.相对路径相对于某个位置,在eclipse下是指当前项目下,dos在指的当前路径 光标前的路径 就是鼠标可以选择到哪里
2.File 的构造方法
* File(String pathname):根据一个路径得到File对象
* File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
* File(File parent, String child):根据一个父File对象和一个子文件/目录得到
1 /* 2 * 在实际开发过程中,如果用到了绝对路径, 应该使用下面这种方法 3 * parent表示路径,child表示文件名 4 * 5 * 根据一个父File对象和一个子文件/目录得到File对象 6 * 封装成File对象这样更好的取使用file类里面的方法。 7 */ 8 String parent = "F:\\基础课程\\day01\\photo"; 9 String child = "jvm.png"; 10 File file = new File(parent,child); 11 boolean b = file.exists(); 12 System.out.println(b); 13 14 15 //根据一个目录和一个子文件/目录得到File对象 16 String parent = "F:\\基础课程\\day01"; 17 String child = "photo\\jvm.png"; 18 File file = new File(parent,child); 19 boolean b = file.exists(); 20 System.out.println(b);
//创建一个文件对象
//根据一个路径得到File对象
File file1 = new File("C:\\a.txt");
还有 getAbsolutePath()方法和 getAbsoluteFile()方法
//创建一个文件对象
File file1 = new File("C:\\a.txt"); //返回的是文件类型,还可以继续使用file类中的各个方法 File file = file1.getAbsoluteFile(); System.out.println(file);
//输出结果为 C:\a.txt
//返回的是字符串类型,可以像字符串一样进行操作 String str = file1.getAbsolutePath(); System.out.println(str);
//输出结果为 C:\a.txt
3.File的创建功能
createNewFile():创建文件 如果存在这样的文件,就不创建了
mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
1 File file1 = new File("C:\\a.txt"); 2 //创建指定文件夹,如果没有父系文件夹,则会创建出父文件夹 3 boolean b = file.mkdirs(); 4 System.out.println(b); 5 6 File file1 = new File("C:\\a.txt"); 7 //创建一个指定文件夹 8 boolean a = file.mkdir(); 9 System.out.println(a); 10 11 12 File file1 = new File("C:\\a.txt"); 13 //创建指定文件 14 boolean a = file.createNewFile(); 15 System.out.println(a); 16 17
//(这就是相对路径) File file = new File("\\a.txt"); //如果你创建文件或者文件夹忘了写盘符路径, //那么,默认在项目路径下。 可以是相对路径 boolean b = file.createNewFile();
4.File类的删除和重命名功能
renameTo(File dest):把文件重命名为指定的文件路径
delete():删除文件或者文件夹
* B:重命名注意事项
* 如果路径名相同,就是改名。
* 如果路径名不同,就是改名并剪切。
* C:删除注意事项:
* Java中的删除不走回收站。
* 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
1 /* 2 * * A:重命名和删除功能 3 * public boolean renameTo(File dest):把文件重命名为指定的文件路径 4 * public boolean delete():删除文件或者文件夹 5 * B:重命名注意事项 6 * 如果路径名相同,就是改名。 7 * 如果路径名不同,就是改名并剪切。 8 * C:删除注意事项: 9 * Java中的删除不走回收站。 10 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 11 */
12 //删除指定文件 13 File file = new File("v"); 14 boolean b = file.createNewFile(); 15 System.out.println(b); 16 boolean a = file.delete(); 17 System.out.println(a); 18 19 //如果路径不同,就是改名加剪切 20 File file = new File("v"); 21 // boolean b = file.createNewFile(); 22 File f = new File("src\\jh_day\\a"); 23 boolean b = file.renameTo(f); 24 System.out.println(b); 25 26 //renameTo 改名,把文件夹重命名为指定的文件路径 27 File file = new File("a"); 28 File f = new File("v"); 29 boolean a = file.renameTo(f); 30 System.out.println(a);
5.File类的判断功能
isDirectory():判断是否是目录
isFile():判断是否是文件
exists():判断是否存在
canRead():判断是否可读
canWrite():判断是否可写
isHidden():判断是否隐藏
1 //判断该文件是否为目录文件 2 File file = new File("D:\\"); 3 boolean b = file.isDirectory(); 4 System.out.println(b); 5 6 //判断文件是否为文件 7 boolean b1 = file.isFile(); 8 System.out.println(b1); 9 10 //判断是否存在 11 boolean b2 = file.exists(); 12 System.out.println(b2); 13 14 //判断文件是否可读 15 boolean b3 = file.canRead(); 16 System.out.println(b3); 17 18 //判断文件是否可写 19 boolean b4 = file.canWrite(); 20 System.out.println(b4); 21 22 //判断是否是隐藏文件 23 boolean b5 = file.isHidden(); 24 System.out.println(b5);
6.File类的获取功能
String getAbsolutePath():获取绝对路径 绝对
String getPath():获取路径
String getName():获取名称
long length():获取长度。字节数
long lastModified():获取最后一次的修改时间,毫秒值
String[] list():获取指定目录下的所有文件或者文件夹的名称数组
File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
1 File file = new File("F:\\a\\ccc.txt"); 2 //获取绝对路径 3 String str = file.getAbsolutePath(); 4 System.out.println("绝对路径是"+str); 5 6 //获取路径 7 String str1 = file.getPath(); 8 System.out.println("路径是"+str1); 9 10 //获取名称 11 String str2 = file.getName(); 12 System.out.println("名称是"+str2); 13 14 //获取长度 15 long l = file.length(); 16 System.out.println("长度是"+l); 17 18 //获取最后一次摁键修改的时间 毫秒值 19 long l1 = file.lastModified(); 20 System.out.println("时间是"+ l1); 21 22 //获取指定目录下的所有文件或者文件夹的名称数组 23 String[] strs = file.list(); 24 System.out.println(strs); 25 26 //获取指定目录下的所有文件或者文件夹的File数组 27 File[] files = file.listFiles(); 28 System.out.println(files);
7.文件名称过滤器的概述及是使用
1 File dir= new File("F:\\a"); 2 File[] files = dir.listFiles(); 3 for (File file : files) { 4 if (file.isFile() && file.getName().endsWith(".java")) { 5 System.out.println(file.getName()); 6 } 7 } 8 9 System.out.println("++++++++++++++++++++++++"); 10 11 String []arr = dir.list(); 12 for (String s : arr) { 13 if (s.endsWith(".txt")) { 14 System.out.println(s); 15 } 16 }