案例:文件搜索
需求:
从D:盘中,搜索"QQ.exe”这个文件,找到后直接输出其位置。
分析:
1先找出D:盘下的所有一级文件对象
2遍历全部一级文件对象,判断是否是文件
3如果是文件,判断是否是自己想要的
如果是文件夹,需要继续进入到该文件夹,重复上述过程
import java.io.File;
import java.io.IOException;
public class FileSearch {
public static void main(String[] args) throws IOException {
search(new File("D:\\"),"geek.exe");
}
/**
* 去目录下搜索某个文件
* @param dir 目录
* @param filename 要搜索的名称
*/
public static void search(File dir,String filename) throws IOException {
//把非法的情况都拦截住
if(dir==null|| !dir.exists()||dir.isFile()){
return;//代表无法搜索
}
//2、dir不是null,存在,一定是目录对象
//获取当前文件目录下全部的以及文件对象
File[]files=dir.listFiles();
//3、判断当前目录下是否存在一级文件对象,以及它是否可以拿到一级文件对象
if (files!=null&& files.length>0){
//4、遍历全部的一级文件对象
for (File f : files) {
//5、判断文件是否是文件,还是文件夹
if (f.isFile()){
//是文件,判断这个文件名是否是我们要找的
if (f.getName().contains(filename)){
System.out.println("找到了,"+f.getAbsolutePath());
Runtime runtime=Runtime.getRuntime();
runtime.exec(f.getAbsolutePath());
}
}else{
//是文件夹,需要继续重复这个过程(递归)
search(f,filename);
}
}
}
}
}
删除非空字符串
import java.io.File;
//删除非空字符串
public class FileDelete {
public static void main(String[] args) {
delete(new File("E:/磊哥面授/java基础/视频"));
}
public static void delete(File dir){
if (dir==null||!dir.exists()){
return;
}
if (dir.isFile()){
dir.delete();
return;
}
//dir存在且是文件夹,拿里面的一级文件对象
File[]files=dir.listFiles();
if (files==null){
return;
}
//这是一个有内容的文件,干掉里面的内容,再干掉自己
for (File file : files) {
if (file.isFile()){
file.delete();
}else{
delete(file);
}
}
dir.delete();
}
}
啤酒问题:啤酒2块钱一瓶,4个盖子可以换一瓶,两个空瓶可以再换一瓶,请问10块钱可以喝多少瓶
public class FilePiJiu {
public static int totlenumber;
public static int lastcovers;
public static int lastbottles;
public static void main(String[] args) {
//啤酒问题:啤酒2块钱一瓶,4个盖子可以换一瓶,两个空瓶可以再换一瓶,请问10块钱可以喝多少瓶
buy(10);
System.out.println("总数"+totlenumber);
System.out.println("剩余盖子数"+lastcovers);
System.out.println("剩余瓶数"+lastbottles);
}
public static void buy(int money){
//1、先买了再说
int buynumber=money/2;
totlenumber+=buynumber;
//把盖子和瓶子继续换成钱继续买
//计算本轮总的盖子数和瓶子树
int allcovers=lastcovers+buynumber;
int allbottles=lastbottles+buynumber;
int allmoney=0;
if (allbottles>=2){
allmoney+=(allbottles/2)*2;
}
lastbottles=allbottles%2;
if (allcovers>=4){
allmoney+=(allcovers/4)*2;
}
lastcovers=allcovers%4;
if (allmoney>=2){
buy(allmoney);
}
}
}