File类,递归

1:File类(掌握)
	(1)因为我们硬盘上的数据最常见的方式就是以文件的方式存在。
	  为了方便对这些文件进行操作,java就提供了一个类File供我们使用。(了解)
	(2)File类的构造方法(理解)
		A:File file = new File("d:\\a.txt");
		B:File file = new File("d:\\","a.txt");
		C:File file = new File("d:\\");
		  File file2 = new File(file,"a.txt");
		以上三种等价。
	(3)File类的功能方法:(掌握 补齐方法名)
		A:创建方法
			创建文件:boolean createNewFile()
			创建文件夹:boolean mkdir()
		B:删除方法
			删除文件或者文件夹:boolean delete()
		C:判断方法(掌握)
			文件对象是否存在:boolean exists()
			文件对象是否是文件:boolean isFile()
			文件对象是否是文件夹:boolean isDirectory()
			文件对象是否可读:boolean canRead()
			文件对象是否可写:boolean canWrite()
			文件对象是否隐藏:boolean isHidden()
		D:获取方法(掌握)
			获取文件对象的绝对路径:String getAbsolutePath()
			获取文件对象的相对路径:String getPath()
			获取文件对象的名称:String getName()
			获取文件对象的大小:long length()
			获取文件对象的最后一次修改时间:long lastModified()
		E:重要获取方法(掌握)
			根据目录获取该目录下所有文件或者文件夹的名称数组:String[] list()
			根据目录获取该目录下所有文件或者文件夹的对象数组:File[] listFiles()

			加入文件名称过滤器的使用:FilenameFilter
		F:重命名方法
			重命名文件:boolean renameTo(File dest)
	(4)案例:(掌握)
		需求:把d盘目录下指定后缀的文件名称输出。
		比如:我要获取d盘目录下所有的java文件名称。

		方式1:先获取所有的文件对象数组,然后遍历的时候进行判断。
			
			File file = new File("d:\\")

			File[] fileArray = file.listFiles();

			for(File f : fileArray)
			{
				if(f.isFile())
				{
					if(f.getName().endsWith(".java"))
					{
						System.out.println(f.getName());
					}
				}
			}


		方式2:直接获取满足条件的文件名称数组,然后遍历即可
			public static void main(String[] args) {
				File file=new File("d:\\KuGou\\Temp");
				
				String[] s=file.list(new FilenameFilter() {
					
					@Override
					public boolean accept(File dir, String name) {
						return new File(dir,name).isFile() && name.endsWith(".mp3");
					}
				});
				for (String string : s) {
					if(string.endsWith(".mp3")){
						System.out.println(string);
					}
				}
			}

2:递归(理解)
	(1)递归:方法定义内部调用方法本身的现象叫递归。(理解)
		举例:
			老和尚给小和尚讲故事
			我们学编程
	(2)注意事项:(掌握)
		A:明确出口,否则就是死递归。
		B:次数不能过多,过多就会有内存溢出。
	(3)案例:(掌握)
		A:递归求阶乘
			规律:n! = n*(n-1)!
			出口:1! = 1;

			public static int jc(int n)
			{
				if(n==1)
				{
					return 1;
				}
				else
				{
					return n*jc(n-1);
				}
			}
		B:递归求斐波纳契数列第二十项的值
		public static int fib(int n){
			if(n==1 || n==2){
				return 1;
			}else{
				return fib(n-1)+fib(n-2);
			}
		}
 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值