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("文件错误。");
}