题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
1 package zuoye; 2 import java.util.*; 3 4 import java.io.*; 5 class FileAccept implements FilenameFilter{ 6 String type; 7 FileAccept(String type){ 8 this.type = type; 9 } 10 public boolean accept(File Fname, String name) { 11 return name.endsWith(type); 12 } 13 14 } 15 public class wenjian { 16 public static void main(String[] args) { 17 System.out.println("请输入你的目录:"); 18 Scanner in = new Scanner(System.in); 19 String s = in.next(); 20 File Fname = new File(s); 21 System.out.println("请输入文件类型"); 22 Scanner in1 = new Scanner(System.in); 23 String k = in1.next(); 24 FileAccept count = new FileAccept(k); 25 String fileList[] = Fname.list(count); 26 System.out.println(s+"当前目录下有"+fileList.length+"个文件"); 27 for(int i =0;i<fileList.length;i++) { 28 System.out.println(fileList[i]); 29 } 30 System.out.println("请输入要剪切的文件"); 31 Scanner in3 = new Scanner(System.in); 32 String b = in3.next(); 33 String f = s+"\\"+b; 34 File Fname1 = new File(f); 35 String FilePath = "C:\\java2"+"\\"+b; 36 try(BufferedReader close1 = new BufferedReader(new FileReader(f)); 37 BufferedWriter writer = new BufferedWriter(new FileWriter(FilePath)); 38 ) { 39 String line = null; 40 while((line=close1.readLine())!=null) { 41 System.out.println(line); 42 writer.write(line); 43 } 44 } catch (FileNotFoundException e) { 45 e.printStackTrace(); 46 } catch (IOException e) { 47 e.printStackTrace(); 48 } 49 System.out.println("被剪切的"+b+"文件"+"已执行,自动删除原文件"); 50 Fname1.delete(); 51 } 52 }
运行结果:
原始文件夹:
剪切后的文件夹: