File类的使用及匿名内部类的简单使用

首先我们还是先看File类的api文档



我们看到可以用Fiile的方法createNewFile();创建一个文件,前面说过了,有构造方法要使用就要new一个,这样,一个叫names.txt的文件就创建完成了,刷新就可以看到了

	public static void test1() {
		File file = new File("names.txt");
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

接下来用renameTo();来改变一个文件的名字,这样,我们之前创建的names.txt就改名为names2.txt

	public static void test2() {
		File file = new File("names.txt");
		file.renameTo(new File("names2.txt"));
	}	

然后我们还可以用delete();来删除一个文件

	public static void test3() {
		File file = new File("names2.txt");
		file.delete();
	}

我们还可以用canExecute,canWrite,canRead方法来查看文件是否有执行,写入权限和读取权限

	public static void test4() {
		File file = new File("names2.txt");
		System.out.println("执行权限:"+file.canExecute());
		System.out.println("编辑权限:"+file.canWrite());
		System.out.println("读取权限:"+file.canRead());
	}
我们还可以用setExecutable();setWritable();setReadable();(括号里面加一个布尔类型的参数true或false )来赋予文件权限

	public static void test5() {
		File file = new File("names2.txt");
		 file.setExecutable(true);
		 file.setWritable(false);
		 file.setReadable(false);
		System.out.println("执行权限:"+file.canExecute());
		System.out.println("编辑权限:"+file.canWrite());
		System.out.println("读取权限:"+file.canRead());
	}

我们还可以使用mkdir();来创建一个文件夹,然后与createNewFile ();创建一个文件连用

	public static void test6() {
		File file = new File("names");
		file.mkdir();
		File file2 = new File("names/a.txt");
		try {
			file2.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}	

然后我们可以用listFiles();来查看文件夹下面的文件名及文件权限,使用for循环把文件读出

	public static void test7() {
		File file = new File("name");
		File[] fileArray = file.listFiles();
		for (File f:fileArray) {
			System.out.println("文件名:"+f.getName()+"执行权限:"+f.canExecute()+"写入权限:"+f.canWrite()+"读取权限"+f.canWrite());
		}
	}

然后我们可以通过加多一个if判断语句及使用endsWith方法来获取我们需要的关键字的文件,下面我们来获取名字带有txt的文件

	public static void test11() {
		File file = new File("names");
		File[] fileArray = file.listFiles();
		for (File f:fileArray) {
			if (f.getName().endsWith("txt")){
				System.out.println("文件名:"+f.getName()+"执行权限:"+f.canExecute()+"写入权限:"+f.canWrite()+"读取权限"+f.canWrite());
			}
		}
	}
然后我们查阅FileFilter类



发现FileFilter是一个接口,还有一些使用方法,接下来我们使用匿名内部类,如果平时我们要使用一个类的方法时需要新建一个类,而匿名内部类就不用再去创建一个新类了,即在一个类里面直接new一个类,然后就可以直接调用这个new类的方法,我们看api可以看到可以使用accept方法,在()传入一个参数,然后我们写一个for循环,输出我们需要搜索的带有关键字的文件

	public static void test13() {
		File file = new File("name");
		String[] fileNameArray = file.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File file,String name) {
				return name.endsWith("png");
			}
		});
		for(String fileName:fileNameArray){
				System.out.println(fileName);
		}
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值