迟到的第14周作业
题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
注释部分:
创建一个string的对象s,用来存储要查找字符目录,定义一个主类和方法类
定义一个异常类创建一个String filename[]数组将所有的文件名放入数组里
并将查询的文件放入数组中
代码部分
package bb; import java.io.BufferedInputStream; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.Writer; import java.util.Scanner; public class Test { /** * 编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。 * 之后,将这些文件中的某一个文件剪切到另外一个目录中。 */ public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请输入文件目录(如D:\\\\java)"); String s=input.nextLine(); Exception e1=new Exception();//定义一个异常类 File fi=new File(s); String filename[]=fi.list();//将所有的文件名放入数组里 for(String name:filename){ System.out.println(name); } System.out.println("输入查询后缀:"); FileAccept filew = new FileAccept(input.nextLine()); String filename1[]=fi.list(filew);//将查询后的文件名放入数组里 for(String name:filename1){ System.out.println(name); } System.out.println("请输入需要剪切的文件名:"); String jq=input.nextLine(); File jqfile=new File(fi+"\\"+jq);//存入的原文件 System.out.println("请输入要移动的文件目录(如:lang)"); String jqway=input.nextLine(); File jqlist=new File(jqway);//存入目录 File newfile=new File(jqway+"\\"+jq);//存入新目录下的新文件 try { newfile.createNewFile();//创建新文件 } catch (IOException e) { e.printStackTrace(); } InputStream inputStream = null; BufferedInputStream bufferedInputStream = null; String filedata=""; Writer writer = null; BufferedWriter bufferedWriter = null; try { inputStream = new FileInputStream(jqfile); bufferedInputStream = new BufferedInputStream(inputStream); byte[] b = new byte[1024]; int count = 0; while((count = bufferedInputStream.read(b, 0, 1024))!=-1){ filedata=filedata+new String(b, 0, count);//遍历到字节存入字符串 } writer = new FileWriter(newfile); bufferedWriter = new BufferedWriter(writer); bufferedWriter.write(filedata);//字符串写入新文件 } catch (FileNotFoundException e11) { e11.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { bufferedInputStream.close();//关闭流 inputStream.close(); bufferedWriter.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } jqfile.delete();//删除原文件 } } class FileAccept implements FilenameFilter{ String str=null; FileAccept(String st){ str="."+st; } public boolean accept(File fi, String name) { return name.endsWith(str);//尾部查询 } }
测试运行
![](https://img2018.cnblogs.com/common/1791130/201912/1791130-20191206194640942-1295535011.png)
![](https://img2018.cnblogs.com/common/1791130/201912/1791130-20191206194458703-1701775014.png)