File类

    类File的对象可以表示文件,也可以表示目录。在创建File对象是,需要指定目录名或文件名的字符串传递给该类的构造方法:

     File  file  =  new  File("Data.txt");//创建了一个File对象,表示当前目录下的文件Data.txt

     File  file  =  new  File("D:\\Java\\Hello.java");//指明详细路径及文件名,注意双斜线或用“/”代替

     创建了File对象,就可以调用File类中定义的方法,对文件或目录进行管理。常用的方法如下:


     boolean exists()    判断文件是否存在,存在返回 true,否则返回false

     boolean isFile()    判断是否为文件,是返回true,否则返回false

     boolean isDirectory()   判断是否为目录,是返回true, 否则返回false

     String getName()    获得文件的名称

     String getAbsolutePath()   获得文件的绝对路径

     long length()        获得文件的长度(字节数)

     boolean createNewFile()    创建新文件,创建成功返回true,否则返回false,有可能抛出IOException异常,必须捕捉

     boolean delete()     删除文件,删除成功返回true,否则返回false

     File[] listFiles()   返回文件夹内的子文件与子文件夹的数组


     进行文件和目录管理师,允许指定相对或绝对目录路径名,但是为了确保程序能在不同的平台上运行,编程时最好不要直接使用绝对路径名。默认的情况下,相对路径名是指相对于当前工作目录。

     利用类File可以做一个简单文件搜索器(输入path(文件夹的绝对路径)和key(关键字),输出该文件夹下所有与key匹配的文件)

//显示指定路径所有目录下的所有的file的名字
	public void searchFile(String path){
		File file = new File(path);
		if(file.exists()){
			if(file.isFile()){//是文件
				list.add2(file.getName());
			}else if(file.isDirectory()){//是文件夹
				File[] files = file.listFiles();
				for(File f:files){	
				//递归
					searchFile(f.getAbsolutePath());
				}
			}
		}
	}

      需要注意的是递归的使用,当一个文件夹名与key匹配时,需要调用searchFile方法本身来遍历该文件夹。

public  void  showFile(MyList list){
		//取出队列中文件名与key比较
		for(int i=0;i<list.getLength();i++){
			//判断文件名是否与key匹配
			if(list.get2(i).contains(key)){
				//追加输出
				area_out.append(list.get2(i)+"\n");
				
			}
		}
		if(area_out.getText().length() == 0){
			area_out.setText("沒有此文件!!");
		}
	}

       遇到的问题:1.当path为根目录时(D:\),无法搜索出结果,而在D盘下的某一文件夹下可以得到结果。

               2.当path为根目录C盘时,会报空指针异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值