Java第14周作业集

一、题目

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

二、源代码

package com;
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 FileType implements FilenameFilter{
    String type;
    F(String type){
        this.type = type;
    }
    public boolean accept(File dir, String name) {
        return name.endsWith(type);//尾部匹配
    } 
}
public class Test {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个目录:");
        String str1=sc.nextLine();//原目录
        File file=new File(str1);
        String[] all = file.list();//调用无参list方法获取该目录下全部文件
        System.out.println("该目录下文件为:");
        for(int i=0;i<all.length;i++){
           System.out.print(all[i]+"\n");
        } 
        System.out.println("请输入文件类型:");
        FileType filetype= new FileType(sc.nextLine());//输入的文件类型
        String fileList[]=file.list(filetype);
        //显示该目录下符合该类型的所有文件
        System.out.println("该目录下有"+fileList.length+"符合该类型个文件");
        for(int i=0;i<fileList.length;i++) {
            System.out.println(fileList[i]);
        } 
        System.out.println("请输入要剪切的文件:");
        String str2=sc.nextLine();//存放文件名
        File filecut=new File(str1+"\\"+str2);//之前的目录f\文件名s
        System.out.println("请输入要剪切到的目录:");
        String str3=sc.nextLine();//新目录
        File filePath=new File(str3);
        File newFile=new File(str3+"\\"+str2);//存入新的
        try {
            newFile.createNewFile();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        InputStream inputStream=null;
        BufferedInputStream bufferedInputStream=null;
        String data="";//内容暂存器
        Writer writer=null;
        BufferedWriter bufferedWriter=null;
         try {
                inputStream = new FileInputStream(filecut);
                bufferedInputStream = new BufferedInputStream(inputStream);
                byte[] n = new byte[1024];//存储内容
                int count = 0;//长度
                while((count = bufferedInputStream.read(n,0,1024))!=-1){
                    data=data+new String(n,0,count);//遍历到字节存入字符串
                }
                writer = new FileWriter(newFile);
                bufferedWriter = new BufferedWriter(writer);
                bufferedWriter.write(data);//将内容写入新文件
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                try {//关闭流
                    bufferedInputStream.close();
                    inputStream.close();
                    bufferedWriter.close();
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("剪切成功");
            filecut.delete();//删除原文件
        }
}

三、运行结果

 

 

 

 

posted @ 2019-12-08 14:40  姓荆的荆  阅读(235)  评论(0编辑  收藏  举报