迟到的第14周作业

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

二、代码

package q;

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;

class w implements FilenameFilter{
    String str=null;
    w(String s){
        str="."+s;
    }
    public boolean accept(File dir, String name) {
        return name.endsWith(str);
    }
}
public class Test {
     public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        System.out.println("请输入目录:");
        File f = new File(reader.nextLine());
        String[] filename = f.list();
        
        System.out.println("目录下文件为:"+"\n");
        for (int i = 0; i < filename.length; i++) {
            System.out.print(filename[i] + "\n");
        }

        
        
        System.out.println("请输入要查找的文件类型:");
         w typefile = new w(reader.nextLine());
            String[] filetype = f.list(typefile);

        System.out.println("与查询文件类型相同的文件为:");
        for(int j=0;j<filetype.length;j++){
            System.out.println(filetype[j]+"\n");
        }
        
        System.out.println("请输入需要剪切的文件名:");
        String j = reader.nextLine();
        File jfile = new File(f+"\\"+j);//存入原文件
        System.out.println("请输入该文件需要移动到的目录:");
        String jway = reader.nextLine(); 
        File jlist = new File(jway);//存入目录     
        File newfile = new File(jway+"\\"+j);
        try {
            newfile.createNewFile();//创建新文件
        } catch (IOException i) {
            i.printStackTrace();
        }
        InputStream inputStream = null;
        BufferedInputStream bufferedInputStream = null;
        String filedata="";
        Writer writer = null;
        BufferedWriter bufferedWriter = null;
        try {
            inputStream = new FileInputStream(jfile);
            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 l) {
            l.printStackTrace();
        } catch (IOException i) {
            i.printStackTrace();
        }finally{
            try {
                bufferedInputStream.close();//关闭流
                inputStream.close();
                bufferedWriter.close();
                writer.close();
            } catch (IOException i) {
                i.printStackTrace();
            }
        }
        jfile.delete();//删除原文件

        
        
        
    }

}

三、运行结果

 

 

 

 

 

 

posted @ 2019-12-08 17:15  王庆祥  阅读(159)  评论(0编辑  收藏  举报