File类、递归
File类
File类的构造函数与File类的获取
import java.io.File; import java.io.FileFilter; public class MyFileter implements FileFilter{ public boolean accept(File pathname) { return pathname.getName().toLowerCase().endsWith(".java"); } } import java.io.File; public class Demo01 { public static void main(String[] args) { method1();//E:\java method2();//; \ method3();//E:\java method4();//E:\java\b.txt } public static void method1(){ //构造方法是不会去给你判断该路径的文件或目录是否存在 //windows下不区分大小写 File file=new File("E:"+File.separator+"java"); System.out.println(file); } public static void method2(){ //与系统有关的路径分隔符 String s1=File.pathSeparator; System.out.println(s1); //与系统有关的名称分隔符 String s2=File.separator; System.out.println(s2); } public static void method3(){ File file=new File("E:","java"); System.out.println(file); } public static void method4(){ File file=new File("E:\\java"); File file2=new File(file,"b.txt"); System.out.println(file2); } } 文件和文件夹的创建删除等
import java.io.File; import java.io.IOException; public class Demo02 { public static void main(String[] args) throws IOException { method1();//E:\eclipsework\Day01\src method2();//a E:\java\a method3();//319984 method4(); method5(); method6(); method7(); method8(); method9(); } public static void method1(){ File file=new File("src"); //如果相对路径,返回的是该类根目录的绝对路径 //返回该文件对象的绝对路径 String path=file.getAbsolutePath(); System.out.println(path); } public static void method2(){ File file=new File("E:\\java\\a"); String name=file.getName();//获取文件或文件夹名 String path=file.getPath();//获取绝对路径 System.out.println(name); System.out.println(path); } public static void method3(){ File file=new File("E:\\java\\eclipse\\eclipse.exe");//获取文件长度 long size=file.length(); System.out.println(size); } public static void method4() throws IOException{ File file=new File("E:\\java\\c");//创建文件 boolean flag=file.createNewFile(); System.out.println(flag); } public static void method5(){ File file=new File("E:\\java\\c");//删除文件 直接彻底删除 boolean flag=file.delete(); System.out.println(flag); } public static void method6(){ File file=new File("F:\\java\\c");//判断该文件是否在该路径下 boolean flag=file.exists(); System.out.println(flag); } public static void method7(){ File file=new File("E:\\java\\a");//判断该文件对象是否为文件夹 boolean flag=file.isDirectory(); System.out.println(flag); } public static void method8(){ File file=new File("E:\\java\\b.txt");//判断该文件对象是否为文件 boolean flag=file.isFile(); System.out.println(flag); } public static void method9(){ File file=new File("E:\\java\\d");//创建文件夹 File file1=new File("E:\\java\\e\\f\\g");//创建一个或多个文件夹 boolean flag=file.mkdir(); boolean flag1=file1.mkdirs(); System.out.println(flag); System.out.println(flag1); } } listFiles()方法介绍
import java.io.File; public class Demo03 { public static void main(String[] args) { //method1(); //method2(); method3(); } public static void method1(){ File file=new File("E:\\java"); //获取的是文件名的字符串 没啥用 String[] files=file.list(); for(String s:files){ System.out.println(s); } } public static void method2(){ File file=new File("E:\\java"); //获取文件夹下所有文件对象 File[] files=file.listFiles(); for(File f:files){ System.out.println(f); } } //找出文件夹里.java类型的文件 public static void method3(){ File file=new File("E:\\java"); File[] files=file.listFiles(new MyFileter()); for(File f:files){ System.out.println(f); } } } 递归 递归的概述
示例: public class Demo04 { //递归:自己调自己,要给出口 public static void main(String[] args) { System.out.println(getSum(20));//210 } //求100+99+98+...+1的和 public static int getSum(int n){ if(n==1){ return 1; } return n+getSum(n-1); } } //获取文件夹里的文件 import java.io.File; public class Demo05 { public static void main(String[] args) { File file=new File("E:\\java\\a"); getFile(file); } public static void getFile(File dir){ File[] files=dir.listFiles(new MyFileter()); System.out.println(dir); for(File f:files){ //如果该文件对象是文件夹调自己 if(f.isDirectory()){ getFile(f); }else{ System.out.println(f); } } } }