java File类

132 阅读2分钟

File类

 File类是java.io包下代表与平台无关的文件和目录。File可以新建、删除、重命名文件和目录,但是不能访问文件内容本身,如果需要访问内容的话,需要通过输入/输出流进行访问。

File类的构造方法:

image.png

常用第一种比较简单在这里注意Java中/要写成//或\才可识别

比如:File cc=new File("c://ccc.txt");

File中一些常用功能:****

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

mkdir(); 创建一个目录

mkdies(); 创建一个多目录文件

delete(); 删除此文件或目录(当删除多级目录时需要使用递归删除)


isDirectory(); 判断是否为目录 结果为布尔型

isFile(); 判断是否为文件 结果为布尔型

exists(); 判断是否存在


getPath(); 返回路径名字符串

getAbsolutePath(); 返回绝对路径名字符串

getName();返回文件或目录的名称

listFiles():返回一个File对象数组

length();返回文件长度(大小)

例子:

	File hh=new File("c://aaa//bbb//ccc.txt");
	System.out.println("文件名:"+hh.getName());
	System.out.println("文件长度:"+hh.length());
	System.out.println("文件路径:"+hh.getPath());
	System.out.println("文件绝对路径:"+hh.getAbsolutePath());
	
	File ll=new File("C:\\aaa\\bbb");
	String[] names= ll.list();
	System.out.println(Arrays.toString(names));
	
	File[] fs= ll.listFiles();
	for (File file : fs) {
		System.out.println(file.getName());
	}

  

结果:

image.png


 

递归删除:

Delete解决不了多目录删除问题且只能删除空目录,删除多级目录需要使用递归删除,一层层查找,发现是文件就删除,发现是目录(文件夹)就打开找文件删除,一直循环执行

 public class Io3 {
  public static void main(String[] args) {
  	File aa=new File("C:\\.metadata");
	Io3.de(aa);
}
public static void de(File aa) {
	File[] files=aa.listFiles();
	for(int i=0;i<files.length;i++) {
		File file=files[i];
		if(file.isFile()) {
			System.out.println("删除文件:"+file.getName());
			file.delete();
		}else {
			de(file);
		}
	}
	System.out.println("删除文件夹:"+aa.getName());
	aa.delete();
    }	
  }

在de方法中挨个查文件夹和文件,如果是文件的话直接删除,如果是文件夹的话就再次遍历该文件夹,重复这一过程知道只剩根文件夹,再删除根文件夹

 

 

 

\