编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件,之后,将这些文件中的某一个文件剪切到另外一个目录中。
TestMain类:
package ccut.java.lsq;
import java.io.*;
import java.util.*;
class X implements FilenameFilter{
String type;
X(String type){
this.type=type;
}
public boolean accept(File file, String name){
return name.endsWith(type);
}
}/*编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。
之后,将这些文件中的某一个文件剪切到另外一个目录中。*/
public class TestMain {
public static void main(String agrs[])throws IOException {
System.out.println("请输入要查询的文件类型:");
File dir = new File("D:\\英雄联盟"); //创建文件对象dir
Scanner scan = new Scanner(System.in);
String type = scan.nextLine(); //接收输入查询文件类型
X f = new X(type);
String[] Files = dir.list(f); //用字符串形式按type类型返回目录下的文件
for (String name : Files) {
System.out.println(name);
}
System.out.println("请输入要剪切的文件名:");
String CFname = scan.nextLine();
System.out.println("请输入新的目录:");
String Path = scan.nextLine();
File cf = new File(Path, CFname);// 此对象是新目录下的同名新文件
BufferedInputStream bin = null;
BufferedWriter bw = null;
int count = 0;
byte[] b = new byte[1024];
try {
cf.createNewFile();
bin = new BufferedInputStream(new FileInputStream(cf));
String str = "";// 接收原文件中的内容
while ((count = bin.read(b, 0, 1024)) != -1) {
str = str + new String(b);
}
bw = new BufferedWriter(new FileWriter(cf, true));
bw.write(str);// 将接收的内容写入新文件中
} catch (IOException e) {
e.printStackTrace();
} finally {
bin.close();
bw.close();
}
cf.delete();// 删除源文件
}
}