第14周作业
题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
显示类
package wenjianzuoye;
import java.io.*;
public class x implements FilenameFilter {
String type;
x(String type) {
this.type = type;
}
public boolean accept(File file, String name) {
return name.endsWith(type);
}
}
剪切类
package wenjianzuoye;
import java.io.*;
public class jianqie {
public boolean jianqie(File f1, File f2) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f1));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
int len = 0;
byte[] b = new byte[1024];
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
}
bis.close();
bos.close();
fileDelete(f1);
return true;
}
public void fileDelete(File f) {
if (f.isFile()) {
f.delete();
} else {
File[] arr = f.listFiles();
for (int i = 0; i < arr.length; i++) {
fileDelete(arr[i]);
}
f.delete();
}
}
}
主类
package wenjianzuoye;
import java.io.*;
import java.util.*;
public class zuoye {
public static void main(String[] args) throws IOException {
Scanner sca = new Scanner(System.in);
System.out.println("请输入文件目录");
String path = sca.next();
File dir = new File(path);
System.out.println("请输入文件类型");
String T = sca.next();
FilenameFilter f = new x(T);
String[] names = dir.list(f);
for (String name : names) {
System.out.println(name);
}
System.out.println("请输入要移动到的目录:");
String cutPath = sca.next();
jianqie cut = new jianqie();
boolean isCut = cut.jianqie(new File(path + "//" + names[0]), new File(cutPath + "//" + names[0]));
if (isCut) {
System.out.println("文件已经剪切到" + cutPath);
}
}
}







浙公网安备 33010602011771号