IO---File类

File类

位于java.io.File;包中,是文件或者目录的抽象表示。

  File类有四个构造函数:

  File(String pathname)

  File(File parent, String child)

  File(String parent, String child)

  File(URI uri)

注意:路径分隔符:c:\\com适合windows系统,c:/com

常用方法

		File file = new File("c:/1.txt");
		
		//判断文件是否存在
		if(!file.exists())
		{
			try {
				file.createNewFile();//创建文件
				
				System.out.println(file.isFile());//是否是文件
				System.out.println(file.isDirectory());//是否是目录
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		File dir = new File("C:/temp/test");
		
		dir.mkdir();//创建目录,必须上一级目录存在,即最底层目录前面的目录全都存在
		dir.mkdirs();//目录一次性全都创建好
		
		File[] fileArray = dir.listFiles();//返回抽象路径名下的所有文件
		String[] strArray = dir.list();//返回抽象路径名表示目录下的文件名和目录名
		
		System.out.println(dir.getName());//返回文件名
		System.out.println(dir.getParent());//返回父目录名
		

        前面提到File类对象既可以是文件也可以是目录,创建文件是createNewFile()方法,相对应的,创建目录即调用mkdir()方法。

       File类是不对称的,说它不对称,意思是虽然存在允许验证一个简单文件对象属性的很多方法,但是没有相应的方法来修改这些属性,即有get无set。

  另外,File类还可以对目录和文件进行删除(删除目录时,目录必须为空时才能删除)、属性修改等工作。方法名都比较直观,在此不多做介绍了,可以查看java API进行了解。

FilenameFilter

使用FilenameFilter过滤文件:希望能够限制由 list() 方法返回的文件,使它仅返回那些与一定的文件名方式或者 过滤器(filter) 相匹配的文件。FilenameFilter
中有一个 accept() 方法,只有该方法判断为true的文件名会被list方法返回。所以可以在accept方法中设置筛选规则。(策略模式)
		File dir = new File("C:/temp/test");
		
		/*
		 * 使用文件过滤器
		 * 采用匿名内部类(Anonymous Inner Class)
		 * 匿名内部类会隐式地继承一个父类或实现一个接口。
		 * 只有accept为true的文件名会被返回到数组中
		 */
		String[] selectedNames = dir.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
				
				if(name.endsWith(".java")) return true;
				return false;
			}
		});
		
		//打印输出
		for(String name : selectedNames)
		{
			System.out.println(name);
		}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值