File类

File类

File类用于操作目录和文件(创建、删除、移动、判断),代表文件或者目录(文件夹)的类

绝对路径:从盘符开始直到最后的文件或者目录的路径
相对路径:相对于某一个目录的路径

separatorChar:目录分割符 在windows系统中就是\ 如果在Unix中 就是 /
pathSeparatorChar:路径分割符 在windows中就是; 如果是Unix 就是 :

File(String pathname)—代表了一个File对象;如果文件不存在,不会创建。在创建file对象的时候,并不会去计算机中检查文件是否存在,只是把传入的路径标志为一个file对象

重要方法

1>createNewFile();
创建文件。只有当文件不存在的时候才会创建。此方法需要有一个boolean标记,创建成功返回一个true,创建失败返回一个file。在创建文件的时候,要求存放文件的路径要真实存在,如果不存在则报错,不会创建父目录。只能用于创建文件,不能用于创建目录。

2>mkdir();
创建目录。只能创建目录,不能创建文件。可以创建多层目录。

3>删除
delete()—用于删除文件或者目录。—从计算机中真正移除,无法撤销。—如果删除的是目录且该目录下存在子目录或者子文件,此时无法删除

4>判断
1>canExecute();
判断是否是可执行文件。
2>canRead();
判断是否可读文件。
3>canWrite();
判断文件是否可写。
4>exists();
判断路径是否真实存在。
5>isAbsoute();
判断是否是绝对路径。
6>isDirectory();
判断是否是一个目录。
7>isFile();
判断是否是一个文件。
8>isHidden();
判断是否是隐藏文件。

5>获取
1>getAbsoluteFile();
获取File对象的绝对路径。
2>getAbsolutePath();
获取传入的File对象的路径。
3>listFiles();
获取所有的子目录和子文件组成的File数组。
File[] fl = file.listFiles();
4>listFiles(new Filefileter);
获取所有子目录。参数不可变。
5>listFiles(new FilenameFilter);
获取所有文件目录的名字。参数不可变。
6>lastModified();
获取文件最后一次修改时间。返回值表示是修改时间到1970-01-01 00:00:00的毫秒值。
7>getName();
获取文件的名字。
8>getParent();
获取父目录

6>设置
1>setLastModified(long l);
设置文件最后一次修改时间。参数也是long类型的毫秒值。
2>setExecutable(boolean b);
设置此文件是否可执行文件。
3>setReadable(boolean readable);
设置文件是否为可读文件。
4>setReadable(boolean readable,boolean ownerOnly);
设置用户对文件的可读权限。
5>setReadOnly();
设置文件是否为只读文件。
6>setWritable(boolean writable);
设置文件是否为可写文件。
7>setWritable(boolean writable,boolean ownerOnly);
设置用户对文件的可写权限。
8>renameTo(new File());
重命名。如果路径没有发生改变,则表示重命名此文件;如果路径发生来改变,则表示的是剪切此文件。

public class FileDemo {
	public static void main(String[] args) throws IOException {
		// 创建File对象
		// 只是将路径和对象进行关联
		// 并没有创建任何内容
		File file = new File("D:\\Javase");
		// 创建文件
//		file.createNewFile();
		// 创建目录
		// 这个方法可以一次性创建多级目录(aaa\\bb\\cc)
//		file.mkdirs();
		// 删除目录时,如果目录中有内容,那么删除不成功
		// 删除目录或者文件,都是永久删除
//		System.out.println(file.delete());
//		System.out.println(file);
		
		// 判断是否是一个目录
//		System.out.println(file.isDirectory());
		// 判断是否是一个文件
//		System.out.println(file.isFile());
		
		
		// 获取目录下所有的目录和文件
		File[] files = file.listFiles();
		for (File f : files) {
			System.out.println(f.getName());
		}

	}
}
public class FilePractice {
	static int javaCount = 0;
	static int classCount = 0;
	public static void main(String[] args) {
//		统计java工作空间中.java和.class文件的个数
		File file = new File("D:\\workspace");
		count(file);
		System.out.println("java文件数" + javaCount);
		System.out.println("class文件数" + classCount);
	}
	
	public static void count(File file){
		if (file.isDirectory()){
			// 获取目录中所有的子目录或者子文件
			File[] files = file.listFiles();
			for (File f : files) {
				count(f);
			}
		}else if(file.getName().endsWith(".java")){
			javaCount++;
		}else if(file.getName().endsWith(".class")){
			classCount++;
		}
	}
	
	
public class FilePractice01 {
	public static void main(String[] args) {
		// 练习:删除目录中所有的目录和文件
		// 1.创建File对象
		File file = new File("D:\\beishanzhe");
		del(file);
	}
	
	public static void del(File file){
		if (file.isDirectory()){// 判断file到底是目录还是文件
			// 获取目录下的所有目录或文件
			File[] files = file.listFiles();
			for (File f : files) {
				del(f);
			}
		}
		
		file.delete();
	}	
	
}
public class FileDemo01 {
	public static void main(String[] args) throws IOException {
		File file = new File("D:\\a.txt");
		file.createNewFile();
		// 判断文件是否可以写东西
//		System.out.println(file.canWrite());
//		// 判断文件是否存在
//		System.out.println(file.exists());
		// 获取绝对路径
//		System.out.println(file.getAbsolutePath());
		
		// 获取剩余空间
//		System.out.println(file.getFreeSpace());
//		// 获取总空间
//		System.out.println(file.getTotalSpace());
//		// 获取可用空间
//		System.out.println(file.getUsableSpace());
//		D:\\cn\\aa.txt
		// 获取文件名称
		System.out.println(file.getName());
		// 获取文件所在的目录
		System.out.println(file.getParent());
		// 获取修改时间
//		System.out.println(file.lastModified());
		// 设置修改时间
		System.out.println(file.setLastModified(2324L));
		
		// 获取目录中所有名称带数字的文件或者目录
//		File[] files = file.listFiles(new FileFilter() {
//			
//			//pathname 文件
//			@Override
//			public boolean accept(File pathname) {
//				// TODO Auto-generated method stub
//				return pathname.getName().matches(".*\\d.*");
//			}
//		});
		
		// 获取目录中所有.chw结尾的文件或目录
//		File[] files = file.listFiles(new FilenameFilter() {
//			
//			@Override   // dir 文件  name 文件名
//			// 如果返回值是true 那么就将文件返回到File[]数组中
//			// 如果是false  那么直接舍弃
//			public boolean accept(File dir, String name) {
//				// TODO Auto-generated method stub
//				return name.endsWith(".chw");
//			}
//		});
//		
//		for (File f : files) {
//			System.out.println(f);
//		}
			
		// 如果在同目录中,那么就是重命名
		// 如果目录不相同,那么就是移动文件并重命名
		boolean b = file.renameTo(new File("D:\\cn\\b23.txt"));
		System.out.println(b);

	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值