1、复制文件是常见的IO操作,设计如下方法,实现复制源文件srcFile到目标文件destFile
public static void copyFile(String srcFile, String destFile){
}/** * 复制文件 * @param srcFile 原文件/地址 * @param destFile 复制后的文件/地址 */ public static void copyFile(String srcFile, String destFile){ File f = new File(srcFile); File fout = new File(destFile); if(fout.canExecute()) fout.delete(); try(FileInputStream fis = new FileInputStream(f); FileOutputStream fos = new FileOutputStream(fout)) { byte[] all = new byte[(int)f.length()]; fis.read(all); fos.write(all); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
2、复制文件夹,实现如下方法,把源文件夹下所有的文件 复制到目标文件夹下(包括子文件夹)
public static void copyFolder(String srcFolder, String destFolder){
}/** * 拷贝文件夹 * @param srcFolder 要拷贝的文件夹 * @param destFolder 目的地文件夹 */ public static void copyFolder(String srcFolder, String destFolder){ File file = new File(srcFolder); try { for(File x:file.listFiles()) { if(x.isFile()) { new File(destFolder + "\\" + x.getName()).getParentFile().mkdirs(); copyFile(x.getAbsolutePath(),destFolder+"\\"+x.getName()); } if(x.isDirectory()) { new File(destFolder + "\\" + x.getName()).getParentFile().mkdirs(); copyFolder(x.getAbsolutePath(), destFolder + "\\" + x.getName()); } } } catch (Exception e) { e.printStackTrace(); } }
3、假设你的项目目录是 e:/project,遍历这个目录下所有的java文件(包括子文件夹),找出文件内容包括main的那些文件,并打印出来。
public static void search(File folder, String search);
/** * 在搜索文件夹搜索指定内容 * @param folder 指定搜索的文件夹 * @param search 搜索关键字 */ public static void search(File folder, String search) { if(folder.exists()) { File[] file = folder.listFiles(); try { for(File listfile : file) { if(listfile.isFile()) { FileReader fr = new FileReader(listfile); int len = 0; char[] ch = new char[1024]; while((len=fr.read(ch))!= -1) { String str = String.valueOf(ch); if(str.contains(search)) System.out.println("找到子目标字符串"+search+",在文件:"+listfile.getAbsolutePath()); } fr.close(); } else search(listfile,search); } } catch (Exception e) { e.printStackTrace(); } } else System.out.println("文件错误。"); }