迟到的第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 }
运行结果: