14周作业

题目:

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

ps:第一次课请先完成前一部分。

text.java

import java.io.*;
import java.util.Scanner;
public class text {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入文件路径:");
        String s1 = sc.nextLine();
        System.out.print("请输入文件格式后缀:");
        String s2 = sc.nextLine();
        File path = new File(s1);//文件路径
        FilenameFilter endName = new getFilenames(s2);//文件后缀
        String[] filenames = path.list(endName);
        System.out.println("一共有"+filenames.length+"个"+s2+"类型的文件!");
        for(String name : filenames) {//循环输符合的文件名
            System.out.println(name);
        }
    }
    
}
    class getFilenames implements FilenameFilter{
        String style ;
        getFilenames(String style){
            this.style=style;
        }
        public boolean accept(File file, String name) {
            return name.endsWith(style);
        }
    }

结果:

 

 

 题目二:完成读写操作

 

 

代码

/**剪切文件到另一目录
 * 2个类3个方法
 */

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 type implements FilenameFilter{//创建FilenameFilter接口子类
    String str = null;
    type(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.print("请输入目录:\n");
        String way = reader.nextLine();//暂存目录
        File file = new File(way);//获取输入的目录
        String[] all = file.list();//调用无参list方法获取全部文件名
        System.out.print("该目录下文件为:\n");
        for(int i = 0;i<all.length;i++){//输出
            System.out.print(all[i]+"\n");
        }
        System.out.print("请输入该目录下要求的文件类型:\n");
        type filetype = new type(reader.nextLine());
        String[] Type = file.list(filetype);//调用参数为文件类型的list方法获取该类文件名
        System.out.print("该目录下该文件类型的文件为:\n");
        for(int i = 0;i<Type.length;i++){
            System.out.print(Type[i]+"\n");
        }
        System.out.print("请输入需要剪切的文件名:\n");
        String cut = reader.nextLine();//暂存文件名
        File cutfile = new File(way+"\\"+cut);//存入原文件
        System.out.print("请输入该文件需要移动到的目录:\n");
        String cutway = reader.nextLine(); //暂存目录
        File cutlist = new File(cutway);//存入目录        
        File newfile = new File(cutway+"\\"+cut);//存入新目录下新文件
        try {
            newfile.createNewFile();//创建同名文件
        } catch (IOException e) {
            e.printStackTrace();
        }
        InputStream inputStream = null;//读出原文件内容对象创建
        BufferedInputStream bufferedInputStream = null;
        String data="";//内容暂存器
        Writer writer = null;//写入新文件内容对象创建
        BufferedWriter bufferedWriter = null;
        try {
            inputStream = new FileInputStream(cutfile);
            bufferedInputStream = new BufferedInputStream(inputStream);
            byte[] content = new byte[1024];//存储内容
            int count = 0;//记录长度
            while((count = bufferedInputStream.read(content, 0, 1024))!=-1){
                data=data+new String(content, 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 {
                inputStream.close();
                bufferedWriter.close();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        cutfile.delete();//删除原文件
    }
}

 

结果:

 

 

 

 

 

 

 

 

posted @ 2019-12-06 17:04  ·起个名好难  阅读(238)  评论(0编辑  收藏  举报