java基础:12.8 综合练习

 

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("文件错误。"); 
	}
posted @ 2019-03-27 09:24  Aurora_l  阅读(143)  评论(0编辑  收藏  举报