Java之File_Create、Delete

File

1、java.io.File
File的每一个实例用于表示硬盘上的一个文件或者目录。
使用File可以:
(1)访问其表示的文件或目录的属性信息(名字,大小等)
(2)操作文件或目录(创建,删除)
(3)访问一个目录中的所有子项,但是不能访问文件数据
在表示文件或目录时,指定的路径尽量不要使用绝对路径,因为操纵系统格式不一致;
相对路径最常用,但是相对路径相对哪里要看程序在那个环境上运行,运行环境决定着相对路径;
在eclipse中运行程序时,"当前目录"指定该类所处的项目目录用“./”表示,在这里可以省略不写。

//在当前目录中创建一个文件demo.txt  file.createNewFile()方法创建文件
File file = new File("C:/demo.txt");
//boolean exists()该方法适用于判断当前File表示的文件或目录是否存在,存在则返回true
if(!file.exists()){
	file.creatNewFile();
	System.out.println("文件已创建!");
} else{
	System.out.println("文件已存在!");
}

2、使用File创建目录

//File提供了mkdir()方法,创建目录
File file = new File("./demo");
if(!file.exists()){
	file.mkdir();
	System.out.println("目录已创建");
} else {
	System.out.println("目录已存在");
}

3、使用File创建多个目录

//File提供一个Mkdirs()可创建多个目录
File file = new File("./a/b/c/d");
if(!file.exists()){
	file.mkdirs();
	System.out.println("多个目录创建完毕!");
} else {
	System.out.println("目录已存在!");
}
运行结果
第一次运行:多个目录已创建完毕!
第二次运行:目录已存在!

删除

1、将当前文件中的demo.txt文件删除

File file = new File("./demo.txt");
if(!File.exists()){
	System.out.println("文件不存在!");
} else {
	file.delete();
	System.out.println("删除完毕!");
}

2、使用File删除
2.1删除一个目录

File file = new File("./demo");
if(file.exists()){
	file.delete();
	System.out.println("目录删除完毕!");
} else {
	System.out.println("目录不存在!);

2.2删除目录有一个前提,即该目录必须是一个空白目录才可以删除,因此以下方式一般不采用

File file = new File("./a/b/c/d");
if(file.exists()){
	file.delete();
	System.out.println("目录删除完毕!");
} else {
	System.out.println("目录不存在!");
}
运行结果:
目录删除完毕!

2.3删除多个目录用递归思想

//删除多个目录
public static void main(String[] args) {
		File file = new File("./a");
		fileDelete(file);
}
private static void fileDelete(File file){
		File[] files = files.listFiles();
		for(int i=0;i<files.length;i++){
			if(files[i].isFile()){		//判断是不是文件,如果是文件则删除
			file[i].delete();
			System.out.println("删除的文件是:"+files[i]..getName());
		} else if(file[i].isDirectory()){
		fileDelete(files[i]);
		}
	}
	file.delete();//删除空白的目录
	System.out.println("删除完毕!");
}

过滤器

FileFilter是一个接口,用于路径下的文件名/目录过滤器

File file = new File("D:/");
Files[] files = file.listFiles(new FileFilter()){
	public boolean accept(File pathname){
		System.out.println("正在过滤"+pathname.getName());
		return pathname.getName.getName().endsWith(".zip");
		}
	});
	for(int i=0;i<files.length;i++){
		System.out.println("过滤后的文件为:"+files[i]);
	}

通过File获取文件信息

获取文件信息

File file = new File("./demo.txt");
//获取名字,File类提供了getName()获取文件或者目录名字
String name = file.getName();
System.out.println(name);
//获取文件字节长度,File类提供了length()获取文件数据或者目录的长度
long length = file.length();
System.out.println(length);

//是否可读写
boolean cr = file.canRead();
boolean cw = file.canWrite();
System.out.println("可读"+cr);
System.out.println("可写"+cw);
//是否为隐藏文件
boolean h = file.isHidden();
System.out.println(h);

获取一个目录中的所有子项
在file中提供了listFiles()方法返回File数组:可以获取当前目录中的所有子项,“.”表示在当前目录。
boolean isFile()判断当前 File表示的是否为文件
boolean isDirectory()判断当前File表示的是否为目录

File file= new File(".");//.指的是当前目录
File[] dirs = file.listFiles();
System.out.println(dirs.length);
	for(int i=0;i<dirs.length;i++){
		if(dirs[i].isFile()){
			System.out.println("文件:"+dirs[i].getName());
	} else if(dirs[i].isDirectory()){
			System.out.println("目录:"+dir[i].getName);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值