轻松解决java File类

在java中文件表示方式

 在java中,万物皆对象。所以文件也不例外,在java中对于文件的可以通过对象的方式进行描述、操作。而java.io包下有一个File类,通过File类来把文件构造为对象在执行其它操作。

构造函数

  从父抽象路径名和子路径名字符串创建新的 File实例

File(File parent, String child)

  通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例

File(String pathname)

  从父路径名字符串和子路径名字符串创建新的 File实例

File(String parent, String child)

  通过将给定的 file: URI转换为抽象路径名来创建新的 File实例

File(URI uri)

同构File类把文件构造为java对象

 如图,在G:\aa路径下有一个bb.txt文件,我们可以通过File类来讲bb.txt描述为java对象。

image.png

代码:

// 通过  File(String pathname) 构造函数创建
File file1 = new File("G:\\aa\\bb.txt");
		
// 通过 File(File parent, String child) 构造函数创建
File file2 = new File("G:\\aa","bb.txt");
		

System.out.println(file1.getName());
		
System.out.println(file2.getName());

执行结果:

image.png

创建文件

File file = new File("demo.txt");
boolean flag = file.createNewFile();
System.out.println(flag);

boolean flag = file.createNewFile(); 成功返回true,失败false,如果没有给定路径,那么创建的文件是存在当前项目的根目录中。

 如果创建的文件在已存在,那么将不会创建,返回false

执行结果:

image.png

创建文件夹

// 1.创建文件夹,不可创建多层目录
mkdir();

// 2.创建文件夹,可以创建多层文件夹
mkdirs();

重命名 and 移动

方法

renameTo( new File() )

 通过renameTo()方法进行重命名操作,如果在同意路径下操作则是进行重命名操作,如果不是在同意路径下操作,那么执行的效果将是移动(剪贴)

在同一路径下操作

File file  = new File("G:\\aa\\bb.txt");

boolean renameTo = file.renameTo(new File("G:\\aa\\cc.txt"));

System.out.println(renameTo);

 将G:\\aa\\bb.txt文件修改为G:\\aa\\cc.txt,由于都是在G:\\aa目录中进行操作,所以执行的效果是重命名操作。

执行结果:

image.png

在不同路径下操作

File file  = new File("G:\\aa\\cc.txt");
		
boolean renameTo = file.renameTo(new File("G:\\aa\\dd\\dd.txt"));

System.out.println(renameTo);

 由于是在不同的目录中操作,所以执行的效果为移动(剪贴),执行完毕后,原来目录中的cc.txt已经被移动到G:\\aa\\dd\\目录中,并且修改为dd.txt名称。

执行结果

image.png

删除文件/文件夹

方法:

delete()

删除成功返回 true,失败 false

File类中的判断方法

1.判断是否为目录

isDirectory();

2.判断是否为文件

isFile();

3.判断是否存在

exists();

4.判断是否可读

canRead();

5.判断是否可写

canWrite();

6.判断是否隐藏

isHidden();

注意

  • canRead()canWrite() 针对的是文件,不是文件夹
  • 上述所有的判断方法返回值都是 布尔型

File类中的获取方法

绝对路径: 文件从盘符开始一直到文件/文件夹 的名词。这样的路径称为绝对路径。
相对路径: 相对于当前项目的路径

  1. 获取绝对路径
getAbsoluteFile();
  1. 获取相对路径
getPath();
  1. 获取文件名称
getName();
  1. 获取长度,单位字节
length();
  1. 获取最后修改时间,数据为毫秒值
lastModified();

测试代码:

File file  = new File("G:\\aa\\dd\\dd.txt");
		
if(file.exists()) {// 判断文件是否存在
			
	// 获取绝对路径
	File absoluteFile = file.getAbsoluteFile();
			
	// 获取相对路径
	String path = file.getPath();
			
	// 获取文件名称
	String name = file.getName();
			
	// 获取文件字节大小
	long length = file.length();
			
	// 获取文件最后修改时间
	long lastModified = file.lastModified();
			
	System.out.println("绝对路径:"+absoluteFile);
	System.out.println("相对路径:"+path);
	System.out.println("文件名称:"+name);
	System.out.println("文件字节大小:"+length);
	System.out.println("文件最后修改时间(毫秒值):"+lastModified);
			
			
			
}else {
	System.out.println("文件不存在");
}

测试结果:

image.png

获取指定文件夹下的所有文件和文件夹

1.获取的返回为字符串数组

public String[] list();

2.获取的返回为File类数组

public File[] listFiles();

补充

1.获取文件的扩展名

File file = new File("G:\\aa\\dd\\dd.txt");

file.getName().substring(file.getName().lastIndexOf(".")+1)

2.获取文件的父目录的绝对路径

File file = new File("G:\\aa\\dd\\dd.txt");
file.getParent()
# java  基础 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×