文件

File

java.io.File
File的每一个实例可以表示文件系统中的一个文件或目录
使用File可以:

  1. 访问文件或目录的属性(如:大小,名字,修改时间等)
  2. 操作文件或目录(创建,删除文件和目录)
  3. 访问目录中的所有内容

但是不可以:访问文件数据
eg:

File file = new File("."+File.separator+"demo.txt");
//获取名字
String name = file.getName();
System.out.println("name:"+name);

//大小(占用的字节量)
long length = file.length();
System.out.println("大小:"+length+"字节");

//是否为文件
boolean isFile = file.isFile();
System.out.println("是文件:"+isFile);

//是否为目录
boolean isDir = file.isDirectory();
System.out.println("是目录:"+isDir);

//是否为隐藏文件
boolean isHidden = file.isHidden();
System.out.println("是否隐藏:"+isHidden);

//最后修改时间
long time = file.lastModified();

Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月d日 HH:mm:ss");
System.out.println("最后的修改时间为:"+sdf.format(date));
//是否可写
boolean canWrite = file.canWrite();
System.out.println("是否可写:"+canWrite);
//是否可读
boolean canRead = file.canRead();
System.out.println("是否可读:"+canRead);
//是否可执行
boolean canExecute = file.canExecute();
System.out.println("是否可执行:"+canExecute);

创建一个文件

/*
* 在当前目录下创建文件test.txt
* 默认路径就是当前目录,即"./",所以不写。
*/
File file = new File("test.txt");
/*
* boolean exists()
* 判断该文件是否真实存在
*/
if(!file.exists()) {
file.createNewFile();
System.out.println("创建完毕!");
}else {
System.out.println("该文件已存在!");
}

删除一个文件

/*
* 删除当前目录中的test.txt文件
*/
File file = new File("test.txt");
if(file.exists()) {
	file.delete();
	System.out.println("删除完毕!");
}else {
	System.out.println("文件不存在!");
}

创建一个新目录

/*
* 在当前目录下创建一个名为demo的目录
*/
File dir = new File("demo");
if(!dir.exists()) {
	dir.mkdirs();
	System.out.println("创建目录完毕!");
}else {
	System.out.println("该目录已存在!");
}

创建一个多级目录

/*
* 在当前目录下创建
* ./a/b/c/d/e/f目录
*/
File dir = new File("a"+File.separator+"b"+File.separator+"c"+File.separator+"d"+File.separator+"e"+File.separator+"f");
if(!dir.exists()) {
/*
 * 在创建当前目录的同时将所有不存在的父目录一起创建出来
 */
dir.mkdirs();
System.out.println("目录创建成功!");
}

删除目录

delete方法可以删除一个目录,但是前提是该目录必须是一个空目录

File dir = new File("demo");
if(dir.exists()) {
	dir.delete();
	System.out.println("删除完毕!");
}

获取一个目录中所有子项

/*
* 获取当前目录中的所有子项
 */
File dir = new File(".");
/*
 * boolean isFile();
 * 判断是否为一个文件
 * 
 * boolean isDirectory();
 * 判断是否为一个目录
 * 
 */
if(dir.isDirectory()) {
	/*
	 * File[] listFiles()
	 * 获取所有子项
	 */
	File[] subs = dir.listFiles();
	for(File sub:subs) {
		if(sub.isFile()) {
			System.out.print("文件:");
		}else {
			System.out.print("目录:");
		}
		System.out.println(sub.getName());
	}	
}

获取一个目录中符合条件的部分子项

使用重载的listFile方法,需要传入一个额外的文件过滤器
文件过滤器是一个接口:FileFilter

File dir = new File(".");
/*
 * 获取名字以"."开头的子项
 */
File[] subs = dir.listFiles(new FileFilter() {
	public boolean accept(File file) {
		System.out.println("正在过滤:"+file.getName());
		return file.getName().startsWith(".");
	}	
});

for(File sub:subs) {
	System.out.println(sub.getName());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值