File
File.pathSeparator //与系统有关的路径分隔符 ; File.separator //与系统有关的默认分隔符 //封装file对象,不能检测文件是否存在 File file=new File("D:\io0512\a.txt"); File file=new File("D:\io0512","a.txt"); File file=new File("D:\io0512"); File file4=new File("src"); //获取文件绝对路径 file.getAbsolutePath(); //D:io0512a.txt file4.getAbsolutePath(); //D:eclipse0512Day14src //获取文件名 file.getName() //a.txt //获取路径 file4.getPath() //src //获取文件长度,长度是字节数,long类型 file.length()
文件和文件夹的创建删除
File file=new File("D:\io0512\a.txt");
//创建空文件
boolean flag=file.createNewFile();
System.out.println(flag);
//判断文件是否存在
System.out.println(file.exists());
//判断是否是文件夹
System.out.println(file.isDirectory());
//判断是否是文件
System.out.println(file.isFile());
//删除文件
file.delete();
//创建文件夹
file.mkdir();
File file2=new File("D:\io0512\q\z\x\c");
//创建多级文件夹
boolean flag=file2.mkdirs();
System.out.println(flag);
listFiles()方法介绍
注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件
1,指定的目录必须是存在的,
2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException
public class FileMethodDemo3 { public static void main(String[] args) { File dir = new File("e:\java_code"); //获取的是目录下的当前的文件以及文件夹的名称。 String[] names = dir.list(); for(String name : names){ System.out.println(name); } //获取目录下当前文件以及文件对象,只要拿到了文件对象,那么就可以获取其中想要的信息 File[] files = dir.listFiles(); for(File file : files){ System.out.println(file); } } }
文件过滤器
public class MyFilter implements FileFilter { @Override public boolean accept(File pathname) { //获取文件名 String name=pathname.getName(); //获取文件拓展名 //转小写 //判断文件是否以txt结尾 return name.toLowerCase().endsWith(".txt"); } }
public static void main(String[] args) { File file=new File("D:\io0512"); File[] files=file.listFiles(new MyFilter()); for(File f:files){ System.out.println(f); }
递归
public static void main(String[] args) { System.out.println(a(3)); } //递归计算1-100的和 public static int a(int i){ if(i==1){ return 1; }else{ return i+a(i-1); } }
递归计算斐波那契数列(前两个数相加等于第三个数)
public static void main(String[] args) { System.out.println(get(12)); } public static int get(int n){ if(n==1||n==2){ return 1; } return get(n-1)+get(n-2); }
递归应用
递归查询所有文件
public class Demo03 { public static void main(String[] args) { get(new File("D:\io0512")); } public static void get(File dir){ //当前目录这一级的文件和文件夹对象数组 File[] files=dir.listFiles(); for(File i:files){ if(i.isDirectory()){//如果file对象时文件夹,继续进行遍历 System.out.println(i+"---");//打印文件夹 get(i); }else{ //如果不是打印 System.out.println(i);//打印文件 } } } }
递归查询所有以txt结尾的文件
public class Demo04 { public static void main(String[] args) { get(new File("D:\io0512")); } public static void get(File dir){ //当前目录这一集的文件和文件夹对象数组 File[] files=dir.listFiles(new Zi()); for(File i:files){ if(i.isDirectory()){//如果file对象时文件夹,继续进行遍历 //System.out.println(i+"---");//打印文件夹 get(i); }else{ //如果不是打印 System.out.println(i);//打印文件 }} } }
public class Zi implements FileFilter{ public boolean accept(File pathname) { if(pathname.isDirectory()){ return true; } String i=pathname.getName(); return i.toLowerCase().endsWith(".txt"); } }