Java中File类的构造方法和常用方法详细解析

文章参考:https://www.cnblogs.com/wangjinlong-padan/p/6382924.html

File类简介:

在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。

File类构造方法:

常用的有三种:

  • File(String pathname):通过路径名创建一个新 File 实例(对象)。

  • File(File parent, String child):根据父目录路径File实例和子目录或文件路径创建一个新 File 实例。

  • File(String parent, String child) :根据父目录路径和子目录或文件路径创建一个新 File 实例。

import java.io.File;

public class Work {
	public static void main(String[] args){
	
		File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat"); //第一种方式。
		System.out.println(file.getPath()); //getPath()返回该file的路径。
		
		file=new File(new File("E:\\网易有道词典\\Youdao"),"Dict\\guid.dat"); //第二种方式。
		System.out.println(file.getPath());‘
		
		file=new File("E:\\网易有道词典\\Youdao\\Dict","guid.dat"); //第三种方式。
		System.out.println(file.getPath());
	}
}

运行结果:
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat

File类常用方法:

创建

  • createNewFile()指定路径不存在该文件时创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。
  • mkdir() 在指定路径下创建一个之前没有的文件夹成功返回true;当不存在此路径时,创建失败返回false。
  • mkdirs() 在指定路径下创建一个之前不存在的多级文件夹(路径不存在时创建出来)并返回true 否则false。
  • renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切+改名,a.renameTo(b)将a移动到b的位置并且改成b的名字。

删除

  • delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。
  • deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。

判断

  • exists() 文件或文件夹是否存在。
  • isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
  • isAbsolute() 测试此抽象路径名是否为绝对路径名。
  • isDirectory(): 判断此File对象代表的路径表示是不是文件夹,只有File对象代表路径存在且是一个目录时才返回true,否则返回false。
  • isFile():判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false。

获取

  • getName() 返回此对象表示的文件或目录最后一级文件夹名称。
  • getPath():返回File对象所表示的字符串路径。
  • getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
  • length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
  • getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
  • getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null。
  • lastModified()获取最后一次被修改的时间。

其他

separator:指定文件或目录路径时使用斜线或反斜线来写,但是考虑到跨平台,斜线反斜线最好使用File类的separator属性来表示。

import java.io.File;

public class Work {

	public static void main(String[] args){
		File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat");

		if(file.isDirectory()) //1、判断该路径是否为文件夹。
		{
			System.out.println("YES");
		}else{
			System.out.println("NO");
		}
		
		if(file.isFile()) //2、判断该路径是否为文件。
		{
			System.out.println("yes");
		}else{
			System.out.println("no");
		}
		
		System.out.println(file.getPath()); //3、路径名称。
		
		System.out.println(file.getName()); //4、最后一层名称。
		
		System.out.println(file.getParent()); //5、去掉最后一层的路径名称。
		
		File file1 = file.getParentFile(); //6、返回File实例,路径为去掉最后一层的路径。
		System.out.println(file1.getPath());

	}
}

执行结果:
NO
yes
E:\网易有道词典\Youdao\Dict\guid.dat
guid.dat
E:\网易有道词典\Youdao\Dict
E:\网易有道词典\Youdao\Dict

import java.io.File;
import java.io.IOException;

public class Work {

	public static void main(String[] args) throws IOException{
		File file = new File("D:\\Tom\\Jim.txt");
		
		System.out.println(file.renameTo(new File("D:\\Tom\\Jom.txt"))); //7、改名,括号中必须是File实例。
		
		Boolean flag = new File("D:\\Tom\\Lacy").mkdir(); //8、创建一层文件夹。
		System.out.println(flag);
		
		flag = new File("D:\\Tom\\a\\b").mkdirs(); //9、可以创建多层文件夹。
		System.out.println(flag);
		
		flag = new File("D:\\Tom\\a.doxc").createNewFile(); //10、创建一层文件。
		System.out.println(flag);
		
		System.out.println(new File("D:\\Tom\\a.doxc").exists()); //11、判断该文件或者文件夹是否存在。
		
	}
}

执行结果:
true
true
true
true
true

import java.io.File;
import java.io.IOException;

public class Work {

	public static void main(String[] args) throws IOException{
		File file = new File("D:\\Tom\\Jom.txt");
		File file1 = new File("D:"+File.separator+"Tom");  //15、File.separator会根据操作系统自动生成\\或者/。
		
		System.out.println(file.delete()); //12、删除文件或者内容为空的文件夹。
		
		String[] names = file1.list(); //13、返回该文件夹下的文件名称和文件夹名称。
		for (String name : names) {
			System.out.println(name);
		}
		
		File[] files = file1.listFiles(); //14、返回该文件夹下的文件和文件夹的File实例数组。
		for (File file2 : files) {
			System.out.println(file2.getPath());//输出路径。
		}
	}
}

执行结果:
true
a
a.doxc
Lacy
D:\Tom\a
D:\Tom\a.doxc
D:\Tom\Lacy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值