博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

第14周作业

Posted on 2019-12-06 19:41  王海楠  阅读(128)  评论(0编辑  收藏  举报

一、题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。ps:第一次课请先完成前一部分。

二、代码

package cn;

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 FF implements FilenameFilter{
    String str=null;
    FF(String str){                     //构造方法
        this.str=str;
    }
    public boolean accept(File dir,String name){      //实现accept方法
        return name.endsWith(str);
    }
}

public class Test {
    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        System.out.println("输入文件目录路径:");
        String str1=reader.nextLine();
        File f=new File(str1);
        System.out.println("输入要找的文件后缀:");
        String str2=reader.nextLine();
        FilenameFilter a= new FF(str2);
        String str3[] = f.list(a);
        for(int i = 0 ; i < str3.length ; i++){
            System.out.println(str3[i]);
       }
        System.out.println("输入要剪切的文件名:");
        String cut = reader.nextLine();
        File f1=new File(str1+"\\"+cut);
        System.out.println("请输入该文件需要移动到的目录:\n");
        String cut1=reader.nextLine();
        File f2=new File(cut1);
        File newf=new File(cut1+"\\"+cut);
        try {
            newf.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        InputStream inputStream = null;
        BufferedInputStream bufferedInputStream = null;
        String filedata="";
        Writer writer = null;
        BufferedWriter bufferedWriter = null;
        try {
            inputStream = new FileInputStream(f1);
            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(newf);
            bufferedWriter = new BufferedWriter(writer);
            bufferedWriter.write(filedata);
        } 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();
            }
        }
        f1.delete();
        }
        
    }

 

 

三、运行结果

package cn;
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 FF implements FilenameFilter{String str=null;FF(String str){                     //构造方法this.str=str;}public boolean accept(File dir,String name){      //实现accept方法return name.endsWith(str);}}
public class Test {public static void main(String[] args) {Scanner reader=new Scanner(System.in);System.out.println("输入文件目录路径:");String str1=reader.nextLine();File f=new File(str1);System.out.println("输入要找的文件后缀:");String str2=reader.nextLine();FilenameFilter a= new FF(str2);String str3[] = f.list(a);for(int i = 0 ; i < str3.length ; i++){System.out.println(str3[i]);       }System.out.println("输入要剪切的文件名:");        String cut = reader.nextLine();        File f1=new File(str1+"\\"+cut);        System.out.println("请输入该文件需要移动到的目录:\n");        String cut1=reader.nextLine();        File f2=new File(cut1);        File newf=new File(cut1+"\\"+cut);        try {            newf.createNewFile();        } catch (IOException e) {            e.printStackTrace();        }        InputStream inputStream = null;        BufferedInputStream bufferedInputStream = null;        String filedata="";        Writer writer = null;        BufferedWriter bufferedWriter = null;        try {            inputStream = new FileInputStream(f1);            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(newf);            bufferedWriter = new BufferedWriter(writer);            bufferedWriter.write(filedata);        } 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();            }        }        f1.delete();}}