File类:是文件和目录路径名的抽象表示形式
     
     1.构造方法:
         File(String pathname):根据一个路径得到File对象
         File(String parent,String child):根据一个目录和一个子文件/目录得到File对象
         File(File parent,String child):根据一个父File对象和一个子文件/目录得到File对象
         
     2.File类的创建功能
         public boolean createNewFile():创建文件,如果存在这样的文件,就不创建了
         public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了
         public boolean mkdirs():创建文件夹,如果父文件不存在,会帮着创建出来
     
     3.File类的重命名和删除功能
         public boolean renameTo(File dest):把文件重命名为指定的文件路径
         public boolean delete():删除文件或者文件夹
     
     4.File类的判断功能
         public boolean isDirectory():判断是否是目录
         public boolean isFile():判断是否是文件
         public boolean exists():判断是否存在
         public boolean canRead():判断是否可读
         public boolean canWrite():判断是否可写
         public boolean isHidden():判断是否隐藏
         
     5.File类的获取功能
         public String getAbsolutePath():获取绝对路径
         public String getPath():获取路径
         public String getName():获取名称
         public long length():获取长度,字节数
         public long lastModified():获取最后一次的修改时间,毫秒值
         public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
         public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
     
     6.输出指定目录下指定后缀的文件名
      
      7.文件名称过滤器的使用
          public String[] list(FilenameFilter filter)
          public File[] listFiles(FileFilter filter) 

 

package pra_15;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class J_29 {
	public static void main(String[] args) throws IOException{

		//构造方法1
		File file=new File("D:\\File\\a.txt");
		System.out.println(file.exists());		//true
		File file2=new File("b.txt");
		System.out.println(file2.exists());		//true
		//构造方法2
		String parent="D:\\File";
		String child="a.txt";
		File file3=new File(parent,child);
		System.out.println(file3.exists()); 	//true
		//构造方法3
		File parent2=new File("D:\\File");
		String child2="a.txt";
		File file4=new File(parent2,child2);
		System.out.println(file4.exists());		//true

		//2.File类的创建功能
		File file5=new File("c.txt");
		System.out.println(file5.createNewFile());
		File dir1=new File("q");
		System.out.println(dir1.mkdir());
		File dir2=new File("ww//qq");
		System.out.println(dir2.mkdirs());		//创建多级目录

		//3.File类的重命名和删除功能
		File file6=new File("k.txt");
		File file7=new File("m.txt");
		System.out.println(file7.createNewFile());
		File file8=new File("D:\\n.txt");
		System.out.println(file5.renameTo(file6));
		System.out.println(file7.renameTo(file8));

		System.out.println(file8.delete());	//在这里删除file7 没法删除成功,需要删除的是对象file8
		System.out.println(dir1.delete());	//要删除文件夹,文件夹里必须是空的

		//4.File类的判断功能
		System.out.println(dir2.isDirectory()); //true
		System.out.println(file6.isFile()); 	//true
		System.out.println(file6.exists()); 	//true
		System.out.println(file6.canRead()); 	//true
		file6.setReadable(false);				//设置file6文件为不可读(指的是用IO流对象去读)
		System.out.println(file6.canRead()); 	//true,因为windows系统文件认为所有的文件都是可读的
		System.out.println(file6.canWrite()); 	//true
		file6.setWritable(false);				//设置file6文件为不可写(指的是用IO流对象去读)
		System.out.println(file6.canWrite()); 	//false,windows系统可以设置为不可写
		System.out.println(file6.isHidden()); 	//false,判断是否是隐藏文件

		//5.File类的获取功能
		System.out.println(file6.getAbsolutePath());
		System.out.println(file6.getPath());	//获取构造方法中传入的路径
		System.out.println(file6.getName());	//无论相对路径还是绝对路径,获得的都是文件的名字
		System.out.println(file6.length());

		Date d=new Date(file6.lastModified());
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		System.out.println(sdf.format(d));

		File dir3=new File("E:\\hoj");
		String[] arr=dir3.list();
		for (String string : arr) {
			System.out.println(string);
		}
		File[] arr2=dir3.listFiles();
		for (File file9 : arr2) {		//获取文件对象
			System.out.println(file9); 	//重写的是toString()方法,所以是全路径
		}

		//6.输出指定目录下指定后缀的文件名
			//只能拿到这一级目录的.c文件
		String[] arr3=dir3.list();		//获取 E:\\hoj下的所有文件或者文件夹
		for (String string : arr3) {
			if(string.endsWith(".c")){
				System.out.println(string);
			}
		}
			//下一层的也拿到(这里的代码没写完,后面补充!)
		File[] sub=dir3.listFiles();
		for (File file9 : sub) {
			if(file9.isFile()&&file9.getName().endsWith(".c")){
				System.out.println(file9);
			}
		}

		//7.文件名称过滤器的使用
		String[] arr4=dir3.list(new FilenameFilter(){

			@Override
			public boolean accept(File dir, String name) {
				File file=new File(dir,name);
				return file.isFile()&&file.getName().endsWith(".c");
			}
		});
		for (String string : arr4) {
			System.out.println(string);
		}
	}
}

 

10-05 16:30