Java-File类

一、File类基本介绍

java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建,查找和删除等操作。
 系统分隔符
  static String pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。 Windows为;(分号),Linux为:(冒号)
  static char pathSeparatorChar 与系统相关的路径分隔符。(和上一个作用相同)。
 static String separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 Windows为,Linux为/
 static char separatorChar 与系统相关的默认名称分隔符。(和上一个作用相同)

public class FileDemo01 {
	public static void main(String[] args) {
      //静态方法可以直接使用类名.静态方法名调用
		String path1=File.pathSeparator;
		System.out.println(path1);//输出结果:;
		
		char path2 = File.pathSeparatorChar;
		System.out.println(path2);//输出结果:;
		
		String separator1 = File.separator;
		System.out.println(separator1);//输出结果:\
		
		char separator2 = File.separatorChar;
		System.out.println(separator2);//输出结果:\
	}

}

二、File类构造方法

File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。
 parent:父路径,是一个File类对象,可以调用File类中的方法。
 child:子路径。
 父路径和子路径可以分开写,而且都可以变化,比较灵活,可以调用File类中的方法。

File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
 pathname:字符串路径名称,路径可以以文件结尾,可以以文件夹结尾;路径可以存在,也可以不存在,因为创建 file类对象只是将字符串进行分装,不考虑路径真假情况。
File(String parent, String child);从父路径名字符串和子路径名字符串创建新的 File实例。
 parent:父路径。
 child:子路径。
 父路径和子路径可以分开写,而且都可以变化,比较灵活,返回的是组装好的完整路径。

public class FileDemo02 {
	public static void main(String[] args) {
		//File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。	
		//存在的路径,以文件夹结尾
		File file1 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		System.out.println(file1);//输出结果:D:\eclipse\eclipse\example\study\file
		
		//存在的路径,以文件结尾
		File file2 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\file.txt");
		System.out.println(file2);//输出结果:D:\eclipse\eclipse\example\study\file\file.txt
		//不存在的路径
		File file3 = new File("D:\\abc");
		System.out.println(file3);//输出结果:D:\abc
		
		
		//File(String parent, String child);从父路径名字符串和子路径名字符串创建新的 File实例。
		File file4 = new File("D:\\","eclipse\\eclipse\\example\\study\\file\\file.txt");
		System.out.println(file4);//输出结果:D:\eclipse\eclipse\example\study\file\file.txt
		//变化父路径
		File file5 = new File("E:\\","eclipse\\eclipse\\example\\study\\file\\file.txt");
		System.out.println(file5);//输出结果:E:\eclipse\eclipse\example\study\file\file.txt
		
		
		//File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。
		File parent = new File("D:\\");
		File file6 = new File(parent,"eclipse\\eclipse\\example\\study\\file\\file.txt");
		System.out.println(file6);//输出结果:E:\eclipse\eclipse\example\study\file\file.txt
	}
	
	

}

三、File类常用获取方法

 public String getAbsolutePath():返回当前File类对象字符串形式的绝对路径,不管是相对路径还是绝对路径,此方法均返回绝对路径 。
 public String getPath():返回当前File类对象字符串形式的路径,绝对路径返回绝对路径,相对路径则返回相对路径。
  public String getName():返回当前File类对象表示的文件或目录名称,路径的结尾部分。
 public long length():返回当前File类对象表示的文件长度,以字节为单位文件夹没有长度概念,因此此方法只对文件有用。若给出的文件不存在或者是文件夹,则返回0。

public class FileDemo03 {
	public static void main(String[] args) {
		// public String getAbsolutePath():返回当前File类对象字符串形式的绝对路径
		//绝对路径
		File file1 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		String s1 = file1.getAbsolutePath();
		System.out.println(s1);//输出结果:D:\eclipse\eclipse\example\study\file
		//相对路径
		File file2 = new File("file");
		String s2 = file2.getAbsolutePath();
		System.out.println(s2);//输出结果:D:\eclipse\eclipse\example\study\file
		
		
		//public String getPath():返回当前File类对象字符串形式的路径
		//绝对路径
		File file3 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		String s3 = file3.getPath();
		System.out.println(s3);//输出结果:D:\eclipse\eclipse\example\study\file
		//相对路径
		File file4 = new File("file");
		String s4 = file4.getPath();
		System.out.println(s4);//输出结果:file
		
		
		// public String getName():返回当前File类对象表示的文件或目录名称
		File file5 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		String s5 = file5.getName();
		System.out.println(s5);//输出结果:file
		
		File file6 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\file.txt");
		String s6 = file6.getName();
		System.out.println(s6);//输出结果:file.txt
		
		// public long length():返回当前File类对象表示的文件长度
		//获取存在的文件
		File file7 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\FileDemo01.java");
		long l1 = file7.length();
		System.out.println(l1);//输出结果:1085
		
		//获取不存在的文件
	    File file8 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\FileDemo05.java");
		long l2 = file8.length();
		System.out.println(l2);//输出结果:0
		
		//获取文件夹长度
	    File file9 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		long l3 = file9.length();
		System.out.println(l3);//输出结果:0
		
	}

}

四、File类常用判断方法

 public boolean exists():判断当前file类对象表示的目录或者文件是否存在。
 public boolean isDirectory():判断当前file类对象是否是目录,判断是否以文件夹结尾。
 public boolean isFile():判断当前对象是否是文件,判断是否以文件结尾。

public class FileDemo04 {
	public static void main(String[] args) {
		// public boolean exists():判断当前file类对象表示的目录或者文件是否存在
		//存在的绝对路径
		File file1 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		boolean b1 = file1.exists();
		System.out.println(b1);//输出结果:true
		
		//不存在的绝对路径
		File file2 = new File("D:\\eclipse\\eclipse\\example\\study\\file1");
		boolean b2 = file2.exists();
		System.out.println(b2);//输出结果:false
		
		
		//存在的相对路径
		File file3 = new File("FileDemo01.java");
		boolean b3 = file3.exists();
		System.out.println(b3);//输出结果:true
				
		//不存在的相对路径
		File file4 = new File("FileDemo10.java");
		boolean b4 = file4.exists();
		System.out.println(b4);//输出结果:false

		
		
		// public boolean isDirectory():判断当前file类对象是否是目录
		// public boolean isFile():判断当前对象是否是文件,判断是否以文件结尾
		File file5 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		boolean b5 = file5.isDirectory();
		boolean b6 = file5.isFile();
		System.out.println(b5);//输出结果:true
		System.out.println(b6);//输出结果:false
		
		// public boolean isFile():判断当前对象是否是文件,判断是否以文件结尾
		File file6 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\FileDemo01.java");
		boolean b7 = file6.isDirectory();
		boolean b8 = file6.isFile();
		System.out.println(b7);// 输出结果:false
		System.out.println(b8);// 输出结果:true
	}

}

五、File类创建删除常用方法

 public boolean createNewFile():当且仅当当前文件名称不存在时,创建一个新空白文件,文件名称文件对象创建时构造方法给出
 注意:
  1.文件不存在,创建文件并返回true,文件已经存在,返回false。
  2.此方法只能创建文件,不能创建文件夹。
  3.创建文件路径必须存在,绝对路径和相对路径都可以,否则会抛出IO异常。
 public boolean delete():删除当前文件对象表示的目录或者文件,可以删除文件和目录。
 注意:
  1.文件删除成功返回true,文件夹有内容或者路径不存在返回false。
  2.此方法直接从硬盘中删除数据,不经过回收站(谨慎使用)
public boolean mkdir():创建当前文件对象表示的目录,单个空文件夹。
 注意:
  1.文件夹不存在,创建文件夹并返回true,文件已夹经存在,返回false。
   2.此方法只能创建文件夹,不能创建文件,不要看文件名,要看文件类型。
  3.创建文件路径必须存在,绝对路径和相对路径都可以,路径不存在,不会抛异常。
 public boolean mkdirs():创建当前文件对象表示的目录,包括任何必需但不存在的父目录,多级文件夹。

public class FileDemo05 {
	public static void main(String[] args) {
		// public boolean createNewFile()
		//绝对路径
		File file1 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\FileDemo01.java");
		try {
			boolean b1 = file1.createNewFile();//此方法会产生异常,必须进行处理
			System.out.println(b1);//已经存在返回false
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//相对路径
		File file2 = new File("study\\file\\FileDemo10.txt");
		try {
		    boolean b2 = file2.createNewFile();//此方法会产生异常,必须进行处理
			System.out.println(b2);//不存在,创建文件并返回true
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		// public boolean mkdir():创建当前文件对象表示的目录,单个文件夹
	    // public boolean mkdirs():创建当前文件对象表示的目录,包括任何必需但不存在的父目录,多级文件夹
		File file3 = new File("study\\file\\file2");
		boolean b3 = file3.mkdir();
		System.out.println(b3);//不存在,创建文件夹并返回true
		
		File file4 = new File("study\\file\\file1");
		boolean b4 = file4.mkdir();
		System.out.println(b4);//存在,返回false
		
		
		File file5 = new File("study\\file\\file.txt");//虽然名称是文件名,但是创建的仍然是文件夹
		boolean b5 = file5.mkdir();
		
		
		File file6 = new File("study\\file\\file3\\1\\2\\3\\4");
		//boolean b6 = file6.mkdir();只能创建单级文件夹,多级文件夹使用下面的方法进行创建
		boolean b6 = file6.mkdirs();
		System.out.println(b6);//不存在,创建多级文件夹并返回true
		
		
		// public boolean delete():删除当前文件对象表示的目录或者文件
		boolean b7 = file6.delete();
		System.out.println(b7);//删除文件夹成功,返回true
		
		boolean b8 = file2.delete();
		System.out.println(b8);//删除文件成功,返回true
	}

}

六、File类遍历目录方法

 public String[] list():返回一个String类型的数组,表示该File目录下的所有目录或子文件。
 public File[] listFile():返回一个File数组,表示该File目录中的所有文件或目录。

 注意事项:
  1.这两个方法只是遍历创建file对象时构造方法给出的目录。
  2.如果构造方法给出的路径不存在或者是一个文件,都会抛出空指针异常。
  3.这两个方法可以遍历出隐藏的文件夹或者文件(没有秘密)。

public class FileDemo06 {
	public static void main(String[] args) {
		//存在的路径
		File file1 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		String[] s1 = file1.list();
		for(String s:s1){
			System.out.print(s+" ");//输出结果:file.txt file1 file2 file3 FileDemo01.java FileDemo02.java FileDemo03.java FileDemo04.java FileDemo05.java FileDemo06.java 
		}
		
		System.out.println();
		//不存在的路径
//		File file2 = new File("D:\\eclipse\\eclipse1\\example\\study\\file");
//		String[] s2 = file2.list();
//		for(String s:s2){
//			System.out.print(s+" ");//抛出NullPointerException
//		}
		//存在的路径,但是访问的是文件
//		File file3 = new File("D:\\eclipse\\eclipse\\example\\study\\file\\1.txt");
//		String[] s3 = file3.list();
//		for (String s : s3) {
//			System.out.print(s + " ");//抛出NullPointerException
//		}
		
		
		//  public File[] listFile():返回一个File数组,表示该File目录中的所有文件或目录
		File file2 = new File("D:\\eclipse\\eclipse\\example\\study\\file");
		File[] f = file2.listFiles();
		for(File F:f){
			System.out.print(F+" ");//输出结果:D:\eclipse\eclipse\example\study\file\file.txt D:\eclipse\eclipse\example\study\file\file1 D:\eclipse\eclipse\example\study\file\file2 D:\eclipse\eclipse\example\study\file\file3 D:\eclipse\eclipse\example\study\file\FileDemo01.java D:\eclipse\eclipse\example\study\file\FileDemo02.java D:\eclipse\eclipse\example\study\file\FileDemo03.java D:\eclipse\eclipse\example\study\file\FileDemo04.java D:\eclipse\eclipse\example\study\file\FileDemo05.java D:\eclipse\eclipse\example\study\file\FileDemo06.java 
		}
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值