迟到的第14周作业

题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。

 1 package 输入目录和文件类型检索;
 2 
 3 import java.io.BufferedInputStream;
 4 import java.io.BufferedWriter;
 5 import java.io.File;
 6 import java.io.FileInputStream;
 7 import java.io.FileNotFoundException;
 8 import java.io.FileWriter;
 9 import java.io.FilenameFilter;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.io.Writer;
13 import java.util.Scanner;
14 
15 
16 
17 public class Test1 {
18     public static void main(String[] args) {
19         
20         Scanner reader = new Scanner(System.in);
21         System.out.println("请输入文件目录:");  //键盘输入目录和文件类型
22         String  mulu = reader.nextLine();
23         File file = new File(mulu);
24 
25        
26       
27         System.out.println("输入文件类型:");
28         String leixing = reader.nextLine();
29         Y y= new Y(leixing);
30         String[] arg1= file.list(y);       //将查询后的文件名放入arg数组里
31         for (String name : arg1) {
32             System.out.println(name);  //遍历数组  输出
33         }
34         
35         System.out.println("你想剪切哪个文件:");
36         String jianqie = reader.nextLine();
37         File file2 = new File(mulu + "\\" + jianqie);
38         System.out.println("想剪切到哪个目录:");
39         String jianqiemulu= reader.nextLine();
40         File file3= new File(jianqiemulu);//新建剪切的目录的映像
41         File file4= new File(jianqiemulu+ "\\" + jianqie);//新建剪切文件的映像
42         try {
43            file4.createNewFile();//新建文件
44         } catch (IOException e) {
45             e.printStackTrace();
46         }
47         InputStream ins = null;// 流的声明
48         BufferedInputStream bins = null;
49         Writer writer = null;
50         BufferedWriter bw = null;
51         String data = "";
52         try {
53             ins = new FileInputStream(file2);//接流
54             bins = new BufferedInputStream(ins);
55             byte[] b = new byte[1024*1024];
56             int len = 0;
57             try {
58                 while ((len = bins.read(b, 0, 1024)) != -1) {
59                     data = data + new String(b, 0, len);//read读到的数据写入到字符串里
60                 }
61                 writer = new FileWriter(file4);
62                 bw = new BufferedWriter(writer);
63                 bw.write(data);   //写出数据到新文件里
64 
65             } catch (IOException e) {
66                 e.printStackTrace();
67             } 
68         } catch (FileNotFoundException e) {
69             e.printStackTrace();
70         }
71         try {
72             bins.close();//关闭流
73             ins.close();
74             bw.close();
75             writer.close();
76         } catch (IOException e) {
77             // TODO Auto-generated catch block
78             e.printStackTrace();
79         }
80         file2.delete();
81     }
82 
83 }
84 
85 class Y implements FilenameFilter {  //filenamefilter类访问文件
86     String type;
87 
88     Y(String type) {
89         this.type = type;
90     }
91 
92     public boolean accept(File file, String name) {
93         return name.endsWith(type);  //返回以type为后缀的文件
94     }
95 }

运行结果:

posted @ 2019-12-08 21:57  丁宝铭  阅读(110)  评论(0编辑  收藏  举报