Java学习——File类

File的三个构造函数:


1、File(String pathname):根据一个路径名称得到一个File对象,如果存在就返回true,如果不存在就返回false

        File file=new File("C:\\Users\\youda\\Desktop\\abc.txt"); //该文件已经存在
	File file1=new File("C:\\Users\\youda\\Desktop\\acb.txt");//该文件不存在
	System.out.println(file.exists());   //运行结果---true
	System.out.println(file1.exists());  //运行结果 ---false

2、File(String parent, String child) :

                String parent="C:\\Users\\youda\\Desktop";
		String child="abc.txt"; //该文件已经存在
		String child1="acb.txt"; //该文件不存在
		File file=new File(parent,child);
		File file1=new File(parent,child1);
		System.out.println(file.exists());  //运行结果:---true
		System.out.println(file1.exists()); //运行结果:---false

3、File(File parent, String child)

                File parent=new File("C:\\Users\\youda\\Desktop");
		String child="abc.txt";//该文件已经存在
		File file=new File(parent,child);
		System.out.println(parent.exists());   //运行结果:---true
		System.out.println(file.exists());    //运行结果:---true

创建的方法:createNewFile() mkdir() mkdirs()

createNewFile(): 这个方法是用来创建文件,如果文件存在就不创建返回false,如果不存在就创建,返回true

File file=new File("abc.txt");
System.out.println(file.createNewFile());

mkdir(),mkdirs():  

                File file1=new File("abc");
		File file2=new File("abc//aabbcc");
		System.out.println(file1.mkdir());  //mkdir()建立一级文件夹  运行结果:true
		System.out.println(file2.mkdirs());  //mkdirs()建立多级文件夹 运行结果:true

重命名方法:renameTo(File des),文件重命名分为路径相同和路径不同

路径相同的改名,把同一个个目录下的abc.txt文件改名为cba.txt文件

                File filebef=new File("abc.txt");
		File fileaft=new File("cba.txt");
		System.out.println(filebef.renameTo(fileaft));//文件在同一目录下就直接改名,返回的是true

路径相同的改名,改名并剪切文件到新路径

File file1bef=new File("cba.txt");
File file1aft=new File("C:\\Users\\youda\\Desktop\\abc.txt");//文件在不同目录下就把原来的文件剪切到目标目录下改名
System.out.println(file1bef.renameTo(file1aft));   //返回的是true

删除功能:delete()是可以删除文件或者文件夹,我们提前在Eclipse项目根目录创建abc.txt文件和aaa文件夹,bbb文件夹,其中bbb文件夹下创建ccc文件夹

               File file=new File("abc.txt");
		File dir1=new File("aaa");
		File dir2=new File("bbb");
		System.out.println(file.delete());   //返回true
		System.out.println(dir1.delete());   //返回true
		System.out.println(dir2.delete());  //返回false,因为bbb目录下面有ccc子文件夹的

	
delete不能删除有子文件夹或者文件的目录,只能删除空目录,且直接删除不会先放到回收站

判断类方法:

1、判断是否为文件或者是否为文件夹:isFilse()\isDirectory()

                File dir=new File("aaa");
		File file=new File("abc.txt");
		//判断是否是目录
		System.out.println(dir.isDirectory());  //返回true
		//判断是否是文件
		System.out.println(file.isFile());   //返回true
		System.out.println(file.isDirectory());  //返回false
		System.out.println(dir.isFile());  //返回false

2、判断是否可读:canRead()

即使java设置了文件不可读,但是由于windows上文件都认为可读,这个方法测试最好在linux系统上

                File file=new File("abc.txt");
		file.setReadable(false);
		System.out.println(file.canRead());//返回的是true,本来应该返回false的
		

3、判断是否可定:canWrite()

                File file=new File("abc.txt"); 
		file.setWritable(false);
		System.out.println(file.canWrite()); //返回false
4、判断文件和文件夹是否隐藏:isHidden()
                File dir=new File("aaa");
		File file=new File("abc.txt"); 
		System.out.println(file.isHidden()); //如果abc.txt文件设置了隐藏就会返回true,如果没有设置隐藏就会返回false
		System.out.println(dir.isHidden());

获取方法:

1、获取路径:获取绝对路径:getAbsolutePath();获取相对路径:getPath()

                File dir=new File("aaa\\ccc");
		File file=new File("abc.txt");
		System.out.println(file.getAbsolutePath());  //返回 :E:\learn\JAVA\workspace\New\abc.txt
		System.out.println(dir.getPath());       //返回:aaa\ccc

2、获取名称:获取文件或者文件夹的名称:getName()

                File dir=new File("aaa\\ccc");
		File file=new File("abc.txt");
		System.out.println(file.getName());  //返回abc.txt
		System.out.println(dir.getName());   //返回ccc

3、获取字节长度:length() 

                File file=new File("abc.txt");
		File dir=new File("aaa\\ccc");
		System.out.println(file.length());   //返回23
		System.out.println(dir.length());   //返回0,似乎不能统计文件夹中字节的长度

4、获取最后一次修改时间:lastModified()

File file=new File("abc.txt");
System.out.println(file.lastModified());  返回1531562788973
打印的是一个从1970年1月1号0时0分0秒到文件修改的时间的毫秒值

5、获取指定路径下文件名称的数组:list()

	       File file=new File("E:\\learn\\JAVA\\workspace\\New");
		String[] str=file.list();
		for(String string:str) {
		System.out.println(string);
		}

返回内容:

.classpath
.project
aaa
abc.txt
bin

src

6、获取指定路径下文件名称的对象:listFiles()

                File file=new File("E:\\learn\\JAVA\\workspace\\New");
		File[] files=file.listFiles();
		for(File file22:files) {
			System.out.println(file22);
		}
		

返回内容:

E:\learn\JAVA\workspace\New\.classpath
E:\learn\JAVA\workspace\New\.project
E:\learn\JAVA\workspace\New\aaa     
E:\learn\JAVA\workspace\New\abc.txt
E:\learn\JAVA\workspace\New\bin
E:\learn\JAVA\workspace\New\src

文件过滤:

1、获取指定路径下指定后缀名的文件:endsWith()

               File desktop=new File("C:\\Users\\youda\\Desktop");
		String[] str=desktop.list();
		for(String string:str) {
			if(string.endsWith(".txt")) {
				System.out.println(string);      //返回:abc.txt。打印出了Desktop目录下以txt结尾的所有文件
			}
		}

2、获取文件对象:

                File desktop=new File("C:\\Users\\youda\\Desktop");
		File[] subFiles=desktop.listFiles();
		for(File file:subFiles) {
			if(file.isFile()&&file.getName().endsWith(".txt")){
				System.out.println(file);      //返回结果:C:\Users\youda\Desktop\abc.txt,结果比上一个复杂,这个可以处理嵌套目录层级
			}
		}

3、文件过滤器:FilenameFilter()

                File desktop=new File("C:\\Users\\youda\\Desktop");
		String[] arr=desktop.list(new FilenameFilter(){
			@Override
			public boolean accept(File dir,String name) {
				File file=new File(dir,name);
				return file.isFile()&&file.getName().endsWith(".txt");
			}
		});
		
		for(String string:arr) {
			System.out.println(string);   //返回abc.txt
		}
		


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值