Java面向对象 - 文件类

第1关:创建文件

任务描述

本关任务:在指定文件夹下创建文件。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • src/output目录下创建hello.txttest.txt文件。

需要先创建test.txt,后创建hello.txt

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。


package 文件类题目;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Scanner;
public class Task {
    public void solution()throws IOException {
        /********* Begin *********/
        File file1 = new File("src/output/test.txt");
        File file2 = new File("src/output/hello.txt");
        file1.createNewFile();
        file2.createNewFile();
        /********* End *********/
    }
}

第2关:文件的常用操作

任务描述

本关任务:创建文件夹,删除文件,列出文件和目录。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,实现文件夹下所有文件信息的列出,删除指定文件夹,在文件夹下创建文件,具体要求如下:

  • src/下创建文件夹test2文件夹;

  • 删除src/output/下的test2.txt文件;

  • src/test2/目录下创建helloworld.txt文件和step2.txt文件;

  • src/output/目录和src/test2/目录下所有文件的文件名按升序排序并打印至控制台。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

输出如下结果:

output目录结构为:
a.txt
b.txt
c.txt
hello.txt
test.txt
test2目录结构为:
helloworld.txt
step2.txt


package 文件类题目;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator;


public class Task2 {
    static File file=null;
    static File[] files=null;
    public static void dcFile() throws IOException {
        file=new File("src/test2");
        file.mkdir();
        file=new File("src/output/test2.txt");
        file.delete();
        file=new File("src/test2/helloworld.txt");
        file.createNewFile();
        file=new File("src/test2/step2.txt");
        file.createNewFile();

        file=new File("src/output");
        files=file.listFiles();
        Arrays.sort(files);
        System.out.println("output目录结构为:");
        for(File file:files){
            System.out.println(file.getName());
        }

        file=new File("src/test2");
        files=file.listFiles();
        Arrays.sort(files);
        System.out.println("test2目录结构为:");
        for(File file:files){
            System.out.println(file.getName());
        }
    }
}

第3关:文件查看器

任务描述

本关任务:实现一个文件查看器,要实现指定文件夹下所有文件以及文件夹目录结构的展示。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 实现对给定文件夹目录结构的展示,并以文件名按升序排序的形式打印至控制台。如果是文件夹则在其名字之前加上+--,若是文件则加上--,上级目录与下级目录、下级文件用两个空格作为间隔,补充完善右侧代码区中的showDirStructure(File dir)函数实现要求的功能,其中函数参数含义如下:

1).dir:指定要显示的文件夹。

main函数可点击右上角文件夹切换至本关Test.java文件进行查看。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

样例1

输入:src/step3/root

输出:

样例2

输入:src/step3/dir

输出:

 


package 文件类题目;

import java.io.File;
import java.util.Arrays;
import java.util.Iterator;

public class Task {
    public void showDirStructure(File dir){
        File[] files=dir.listFiles();
        Arrays.sort(files);

        System.out.println("+--"+dir.getName());

        Iterator iterator= Arrays.stream(files).iterator();
        while(iterator.hasNext()){
            function(1, (File) iterator.next());
        }
    }

    public void function(int n,File file){
        for(int i=1;i<=2*n;i++)System.out.print(" ");
        if(file.isFile()){
            System.out.println("--"+file.getName());
        }else{
            System.out.println("+--"+file.getName());

            File[] files=file.listFiles();
            Arrays.sort(files);

            Iterator iterator= Arrays.stream(files).iterator();
            while(iterator.hasNext()){
                function(n+1, (File) iterator.next());
            }
        }
    }
}

第4关:图片查看器

本关任务:小明想要开发一个图片查看器,但是他想只显示文件夹下所有图片类型的文件。

你来帮小明实现这个功能吧。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 实现对给定文件夹目录结构的展示,并以文件名按升序排序的形式打印至控制台。如果是文件夹则在其名字之前加上+--,若是文件则加上--,上级目录与下级目录、下级文件用两个空格作为间隔,另外需要对文件进行过滤,只显示图片类型的文件,本关需要过滤的图片文件类型有:“jpg,png,bmp”,请补充完善右侧代码区中的showDirStructure(File file)函数实现本关要求的功能,其中函数参数含义如下:

1). file:指定要显示的文件夹。

测试说明

样例1

输入:src/step4/root

输出:

样例2

输入:src/step4/dir

输出:


 

package 文件类题目;


import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Locale;

public class Task {
    public void showDirStructure(File dir){

        FileFilter filter=file->{
            if(file.isFile()){
                String fileName=file.getName().toLowerCase();
                if(fileName.endsWith(".jpg")||fileName.endsWith(".png")||fileName.endsWith(".bmp")){
                    return true;
                }
            }else if(file.isDirectory()){
                return true;
            }
            return false;
        };

        File[] files=dir.listFiles(filter);
        Arrays.sort(files);

        System.out.println("+--"+dir.getName());

        Iterator iterator= Arrays.stream(files).iterator();
        while(iterator.hasNext()){
            function(1, (File) iterator.next(),filter);
        }
    }

    public void function(int n,File file,FileFilter filter){
        for(int i=1;i<=2*n;i++)System.out.print(" ");
        if(file.isFile()){
            System.out.println("--"+file.getName());
        }else{
            System.out.println("+--"+file.getName());

            File[] files=file.listFiles(filter);
            Arrays.sort(files);

            Iterator iterator= Arrays.stream(files).iterator();
            while(iterator.hasNext()){
                function(n+1, (File) iterator.next(),filter);
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值