广州住房和城乡建设局官网,济南网站系统优化,网站建设工作流程,品牌推广是什么工作构造方法 一般方法#xff0c;有很多#xff0c;我们以下只是列举几个经常使用的 注意在上述的操作过程中#xff0c;无论是绝对路径下的这个文件还是相对路径下的这个文件#xff0c;都是不存在的 Reader 使用 -- 文本文件 FileReader类所涉及到的一些方法 Fil… 构造方法 一般方法有很多我们以下只是列举几个经常使用的 注意在上述的操作过程中无论是绝对路径下的这个文件还是相对路径下的这个文件都是不存在的 Reader 使用 -- 文本文件 FileReader类所涉及到的一些方法 FileInPutStream的使用和FileReader的使用很类似 我们可以通过String类的构造方法将内容输出 整体思路 用户指定目录 -- 用户输入一个关键词 -- 遍历目录 列出当前目录中有哪些内容我们想要的内容主要是普通文件 — 开始遍历目录中的文件这里分为files为普通文件和子目录两种情况 -- 如果是文件看其中是否包含是关键词 I 如果是目录就递归执行sacnDir 判断当前文件名中是否包含word -- 如果包含则向用户发出请求是否要删除该文件 所有代码如下
package file;import java.io.File;
import java.util.Scanner;//遍历指定目录并询问用户是否删除关键字命名的普通文件
public class Demo10 {public static Scanner scannernew Scanner(System.in);public static void main(String[] args) {//1.用户指定目录System.out.println(请输入需要查找的根目录);//封装为一个文件类File rootpathnew File(scanner.next());//2.让用户输入一个关键词System.out.println(请输入一个关键词);String wordscanner.next();//3.判断当前输入的目录是否有效if(!rootpath.isDirectory()){System.out.println(当前输入的目录非法);return;}//4 遍历目录scanDir(rootpath,word);}public static void scanDir(File currentDir,String word){//这里以深度优先的方式遍历目录主要体现为递归//1.列出当前目录中有哪些内容我们想要的内容主要是普通文件File[] filescurrentDir.listFiles();if(filesnull || files.length0){//目录为空或者非法的目录文件return;}//2.开始遍历目录中的文件这里分为files为普通文件和子目录两种情况for (File f:files) {//添加一个日志方便查看执行过程System.out.println(f.getAbsoluteFile());if(f.isFile()){//如果是文件看其中是否包含是关键词dealFile(f,word);} else{//如果是目录就递归执行sacnDirscanDir(f,word);}}}private static void dealFile(File f,String word){//1 判断当前文件名中是否包含wordif(!f.getName().contains(word)){//不包含则不做任何处理return;}//2.如果包含则向用户发出请求是否要删除该文件System.out.println(找到了包含 word 的文件 f.getAbsolutePath() 是否需要删除Y/N);String sscanner.next();if(s.equals(Y) || s.equals(y)){f.delete();}//用户输入其它值则忽略}
}
效果如下 代码如下
package file;import java.io.*;
import java.util.Scanner;
//复制文件
public class Demo11 {public static void main(String[] args) throws IOException {//1 输入源文件路径和目的文件路径并进行合法性判断Scanner scannernew Scanner(System.in);System.out.println(请输入要复制文件的路径);File srcFilenew File(scanner.next());if(!srcFile.isFile()){System.out.println(输入的源文件路径非法);return;}System.out.println(请输入目标路径);File destFilenew File(scanner.next());//不要求目标文件本身存在但是要求目标文件的路径是正确的if(!destFile.getParentFile().isDirectory()){System.out.println(目标文件路径非法);return;}//2 分别打开两个文件从源文件中读取数据将其写入目标文件中循环直至源文件的数据读取完毕//使用字节流方式try(InputStream inputStreamnew FileInputStream(srcFile);OutputStream outputStreamnew FileOutputStream(destFile) ){while(true){byte[] bufnew byte[10];int ninputStream.read(buf);if(n-1){break;}outputStream.write(buf,0,n);}}}
}
结果如下