JAVA——File对象

本文详细介绍了Java中的File类的构造方法、常用成员函数,包括判断文件类型、路径操作、创建和删除文件/文件夹,以及获取目录内容和使用过滤器遍历。
摘要由CSDN通过智能技术生成

目录

常见构造方法:

File常见的成员方法:

判断获取:

创建删除:

获取文件夹:

获取并遍历:


File : File对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径

这个路径可以是存在的,也可以是不存在的

常见构造方法:

public File(String pathname)   根据文件路径创建文件对象

public File(String parent,String child)   根据父路径名字字符串和子路径名字字符串创建文件对象

public File(File parent,String child)   根据父路径对应文件对象和子路径对应名字字符串创建文件对象

父路径:父级路径:除了本身文件的所有 如D:\\桌面

子路径:子级路径:本身文件路径 如a.txt

路径分隔符:

         WINDOWS: \

        Linux: /

绝对路径:带盘符的

相对路径:不带盘符的,默认到当前项目下去找

File常见的成员方法:

判断获取:

public boolean isDirectory()    判断此路径名表示的File是否为文件夹

public boolean isFile()    判断此路径名表示的File是否为文件

public boolean exists()    判断此路径名表示的File是否存在

public long length()    返回文件的大小(单位字节)

                只能获取文件的大小,无法获取文件夹的大小

                如需要获取文件夹大小,需要把文件夹内所有内容累加到一起计算

public String getAbsolutePath()   返回文件的绝对路径

public String getPath()   返回定义文件时使用的路径

public String getName()   返回文件的名称,带后缀

public long lastModified()   返回文件的最后修改时间(时间毫秒值)

创建删除:

public boolean createNewFile()   创建一个新的空的文件

                如果当前路径表示的文件已存在,创建失败

                如果父级路径不存在,那么方法会有异常IOException

                创建的一定是文件,不是文件夹 若没有后缀,则会创建一个无后缀文件

public boolean mkdir()   创建单级文件夹(目录)--只能创建单级

public boolean mkdirs()   创建多级文件夹(目录)--即可创建单级也可创建多级

public boolean delete()   删除文件,空文件夹(直接删除,不走回收站)

获取文件夹:

public File[] listFiles()      获取当前该路径下所有内容

                当调用者File表示的路径不存在时,返回null

                当调用者File表示的路径是文件时,返回null

                当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组

                当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数

                当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回

                当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件

                当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

获取并遍历:

public static File[] listRoots()   列出可用的文件系统根(盘符)

public String[] list()   获取当前该路径下所有内容

public String[] list(FilenameFilter filter)   利用文件名过滤器获取当前该路径下所有内容

public File[] listFiles(FileFilter filter)   利用文件名过滤器获取当前该路径下所有内容

public File[] listFiles(FilenameFilter filter)   利用文件名过滤器获取当前该路径下所有内容

String str = "D:\\桌面\\java_File_test\\a.txt";
		File f1 = new File(str);
		System.out.println(f1);
		
		String parent = "D:\\桌面\\java_File_test";
		String child = "b.txt";
		File f2 = new File(parent,child);
		System.out.println(f2);
		
		File f2_1 = new File(parent);
		File f3 = new File(f2_1,"c.txt");
		System.out.println(f3);
		
		//创建删除实验
		boolean f1_1 = f1.createNewFile();  //创建成功会直接在文件夹显示
		boolean f1_2 = f2.createNewFile();  //创建成功会直接在文件夹显示
		System.out.println(f1_1);   
		System.out.println(f1_2); 
		long f1_2length = f2.length();
		boolean f1_3 = f1.delete();
		System.out.println(f1_3);
		System.out.println("大小字节:"+f1_2length+"byte");
		
		
		File f4 = new File("teaching.java");
		String f4a = f4.getAbsolutePath();
		String f4p = f4.getPath();
		System.out.println(f4a);
		System.out.println(f4p);
		
		File f5 = new File("D:\\桌面\\java_File_test\\a");
		File f5s = new File("D:\\桌面\\java_File_test\\aaa\\aaa\\aaa");
		boolean f5m = f5.mkdir();
		boolean f5ms = f5s.mkdirs();
		System.out.println(f5m);
		System.out.println(f5ms);
		
		boolean d1 = f5.delete();
		boolean d2 = f5s.delete();
		File f5mm = new File("D:\\桌面\\java_File_test\\b.txt");
		boolean d3 = f5mm.delete();
		System.out.println(d1+" "+d2+" "+d3);
		
		boolean f1c = f1.createNewFile();
		boolean f2c = f2.createNewFile();
		boolean f3c = f3.createNewFile();
		System.out.println(f1c+" "+f2c+" "+f3c);
		
		//遍历
		File now = new File("D:\\桌面\\java_File_test");
		File[] file = now.listFiles();
		for(File s : file) {
			System.out.println(s);
		}
		String[] st = now.list();
		for(String s : st) {
			System.out.println(s);
		}
		
		
		File[] root = File.listRoots();
	    for(File r : root) {
	    	System.out.print(r+" ");
	    }
		 
		
	    System.out.println("\n");
		//利用文件名过滤器获取获取每一个txt文件
		//文件&&txt
	    File f6 = new File("D:\\桌面\\java_File_test");
	    //匿名内部类书写
		String[] arr3 = f6.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir,String name) {
				File src = new File(dir,name);
				if(src.isFile() && name.endsWith(".txt")) {
					return true;
				}else {
					return false;
				}
				
			}
		});
    	System.out.print(Arrays.toString(arr3)+"\n");
		
    	File[] f = f6.listFiles();
    	for(File fi : f) {
    		if(fi.isFile() && fi.getName().endsWith(".txt")) {
    			System.out.println(fi);
    		}
    	}
    	
    	
    	//查询盘符下的所有.java结尾的文件
    	//递归
    	//查询C盘
    	//File src = new File("C:\\");
    	//find(src);
    	
    	//遍历所有盘符
    	findAll();
    	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值