用java控制台实现文件管理系统

前言:

本项目适合在校大学生和java基础阶段的初学者,希望各位可以看看。其中具有面向对象思想的运用,以及集合的运用

功能:

1:盘符查询功能

将本地计算机的盘符可视化的显示在控制台上,然后提供交互性输入,可以使大家可选择的进入不同的盘符去查询文件

效果图:

 

2:盘符内的所有文件查询功能

将本地计算机的盘符内的文件可视化的显示在控制台上,然后提供交互性输入,可以使大家可选择的进入不同的文件去进行操作

效果图:

因为文件夹里面的文件太多了,所以不能展示全。。但是如果直接运行我的代码,你们就可以一目了然了

 

3:对单个文件的重命名功能:

效果图:

 

就是将文件的名字改变。。相信大家有手就行。

4:对文件的移动位置功能

效果图 

改变文件的位置,有手就行

5:获取文件信息(文件路径,大小,可读,可写)功能

效果图

 

调几个api就好了

6:返回(继续显示当前所有的文件及目录)功能

效果图

 

需要一些小机灵等下直接放代码

项目弊端:

其中的删除方法还没写,以及回到盘符的方法也没写。因为需要留给你们一些自主思考的时间(主要是因为我忙),那么废话不多说直接上代码

代码:

Files类:

public class Files {
    private String name;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Files{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }

    //查询文件夹文件的方法
    public File[] allFileSelect(ArrayList<PanFu> arrayList) {
        Scanner scanner = new Scanner(System.in);
        File[] fff = new File[]{};
        System.out.println("请输入你想进入的盘符");
        int x = scanner.nextInt();
        for (PanFu panFu1 : arrayList) {
            if (x == panFu1.getId()) {
                System.out.println(panFu1.getId());
                File file = new File(panFu1.getName());
                File[] files = file.listFiles();
//                for (File listFile : file.listFiles()) {
//                    System.out.println(listFile);
//                }
                return files;
            }

        }
        return fff;
    }

    //查询文件夹文件的方法
    public ArrayList<Files> intoFile(File[] files) {
        ArrayList<Files> files2 = new ArrayList<>();
        int id = 1;
        for (File file : files) {
            Files files1 = new Files();
            files1.setId(id);
            files1.setName(file.toString());
            System.out.print(files1.getId());
            System.out.println(files1.getName());
            files2.add(files1);
            id++;
        }
        return files2;
    }

    //获取文件对象的方法
    public Files getfile(ArrayList<Files> filesArrayList) {
        Files files = new Files();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你想进入的文件");

        int i = scanner.nextInt();
        for (Files files1 : filesArrayList) {
            if (files1.getId() == i) {
return files1;
            }
        }
        System.out.println("未找到");
        return files;
    }
    //重命名
    public void   rename(Files oneFile, String s){
        File file = new File(oneFile.getName());
        file.renameTo(new File(s));
//        System.out.println();


    }
    //获取文件信息
    public void getMessageOfFile(Files oneFile){
        File file = new File(oneFile.getName());
        System.out.println("该文件的绝对路径为"+file.getAbsolutePath());
        System.out.println("是否可以阅读"+file.canRead());
        System.out.println("是否可以阅读"+file.canWrite());
        System.out.println("文件长度为"+file.length());
    }
    //返回上级的方法
    public void backForm(Files oneFile){
        File file = new File(oneFile.getName());
        String str= file.toString().charAt(0)+":";
        File file1 = new File(str);
        for (File listFile : file1.listFiles()) {
            System.out.println(listFile);
        }

    }
}

PanFu类(英文不好):

public class PanFu {
  private   String name;
   private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "PanFu{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }

    public static ArrayList<PanFu> panFuSelect(){

        File[] files = File.listRoots();
        ArrayList<PanFu> arrayList = new ArrayList<>();
        int i=1;
        for (File f:files){
            PanFu panFu = new PanFu();
           panFu.setName(f.toString());
//            System.out.println(f.getName());
           panFu.setId(i);
            System.out.print(panFu.getId());
            System.out.println(f);
            arrayList.add(panFu);
            i++;

        }
        return arrayList;

    }
}

入口方法Demo类:

public class Demo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//定义一个具体的可操作文件
        Files oneFile=new Files();
        //定义一个接受盘符对象的集合
        ArrayList<PanFu> arrayList = new ArrayList<>();
        //定义一个存文件的数组
        File [] arrayFile=new File[]{};
        //定义一个存文件的集合
        ArrayList<Files> filesArrayList = new ArrayList<>();
        PanFu panFu = new PanFu();
        Files files = new Files();
        //遍历盘符
        arrayList= panFu.panFuSelect();
        System.out.println(arrayList);
        //查询盘符
    arrayFile=files.allFileSelect(arrayList);
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("请输入你想进入的盘符");
//       int x= scanner.nextInt();
//       for (PanFu panFu1:arrayList){
//           if (x==panFu1.getId()){
//               System.out.println(panFu1.getId());
//               File file = new File(panFu1.getName());
//               for (File listFile : file.listFiles()) {
//                   System.out.println(listFile);
//               }
//
//           }

       //遍历文件的方法
     filesArrayList=  files.intoFile(arrayFile);
//        System.out.println("请输入你想进入的文件");
//        int i = scanner.nextInt();
//        for (Files files1:filesArrayList){
//            if (files1.getId()==i){
//
//            }
//        }
        //获取具体文件的方法
     oneFile= files.getfile(filesArrayList);
        //进行操作文件的方法
        System.out.println(1+"重命名"+"\t"+2+"移动"+"\t"+3+"删除"+"\t"+4+"获取文件信息"+"\t"+5+"返回"+"\t");
        int i = scanner.nextInt();
        Scanner str=   new Scanner(System.in);
        switch (i){
            case 1:
                System.out.println(i+"请输入重命名");

             String s=str.next();
                files.rename(oneFile,s);
                System.out.println("重命名为"+s);
                break;
            case 2:
                System.out.println("请输入移动的位置");
                String s2=str.next();
                files.rename(oneFile,s2);
                System.out.println(i+"移动");

                break;
            case 3:
                System.out.println(i+"删除");
                break;
            case 4:
                System.out.println(i+"获取文件信息(文件路径,大小,可读,可写)");
                files.getMessageOfFile(oneFile);
                break;
            case 5:
                System.out.println(i+"返回(继续显示当前所有的文件及目录)");
                files.backForm(oneFile);
                break;
        }
    }

    }

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实现一个文件管理系统可以使用 Java 语言来编写。 首先,可以使用 Java文件 IO 类(例如 java.io.File)来操作文件文件夹,这样可以方便地读取、写入、删除、重命名文件文件夹。 其次,可以使用 Java 的图形用户界面(GUI)开发框架(例如 JavaFX 或 Swing)来实现界面,便于用户进行操作。 最后,可以使用 Java 的多线程技术(例如 java.util.concurrent 包)来实现文件管理系统的多任务处理能力。 总的来说,使用 Java 实现一个文件管理系统需要掌握 Java文件 IO、图形用户界面开发和多线程技术。 ### 回答2: 使用Java实现一个文件管理系统可以通过以下步骤完成: 首先,需要定义文件文件夹类。文件类可以包括文件名、文件类型、文件大小和文件路径等属性,提供获取和设置这些属性的方法。文件夹类可以包括文件夹名和包含的文件文件夹列表,同样提供相应的方法进行操作。 然后,可以创建一个文件系统类,负责管理文件文件夹。该类可以包括一个文件文件夹列表,以及相应的方法来添加、删除和查询文件文件夹。可以使用ArrayList来存储文件文件夹列表。 接下来,可以实现一些常用的文件操作功能,如创建文件、删除文件、重命名文件、复制文件、移动文件等。这些操作可以在文件系统类中实现,根据用户输入的命令进行相应的操作。 可以通过命令行或图形界面来实现与用户的交互。命令行界面可以接受用户输入的命令,然后调用文件系统类中的相应方法进行操作,并返回相应的结果。图形界面可以通过按钮、文本框等组件来实现用户的输入和展示结果。 在文件管理系统中,还可以实现一些高级功能,如文件搜索、文件排序、文件压缩与解压缩等。对于文件搜索功能,可以通过递归遍历文件夹和文件来查找符合条件的文件。对于文件排序功能,可以使用不同的排序算法对文件列表进行排序。对于文件压缩与解压缩功能,可以使用Java提供的压缩和解压缩类库进行实现。 最后,为了保证文件管理系统的稳定性和数据的安全性,可以考虑实现文件备份和恢复功能。可以使用Java提供的文件输入输出流和文件拷贝功能来进行文件的备份和恢复。 总之,使用Java实现一个文件管理系统需要定义合适的类和方法,实现常用的文件操作功能,并实现与用户的交互。这样可以方便用户管理和操作文件,提高工作效率。 ### 回答3: 为了使用Java实现一个文件管理系统,我们需要考虑以下几个关键方面: 1. 文件系统的结构:文件管理系统可以使用树状结构来组织文件文件夹。每个节点代表一个文件文件夹,其中根节点是最顶级的文件夹。我们可以使用Java的类来表示文件文件夹,并使用适当的数据结构来组织它们。 2. 创建文件文件夹:我们需要实现方法来创建新的文件文件夹。对于文件夹,我们需要考虑如何处理重名的情况,并确保文件文件夹的名称唯一。 3. 删除文件文件夹:我们还需要实现方法来删除文件文件夹。在删除文件夹时,我们需要递归删除所有内容。 4. 重命名文件文件夹:如果用户想要重命名文件文件夹,我们应该提供相应的方法来处理这种情况。 5. 移动文件文件夹:用户可能需要将文件文件夹移动到其他位置。我们需要实现方法来支持此功能,并确保移动后的目标位置唯一。 6. 搜索文件文件夹:我们可以实现根据名称、后缀名或其他属性来搜索文件文件夹的方法。这将帮助用户快速找到所需的文件。 7. 文件访问权限控制:我们可以为文件文件夹定义不同的访问权限,例如读取、写入和执行。我们需要实现相应的方法来处理这些权限。 8. 文件属性:为了提供更多信息,我们可以为文件文件夹定义额外的属性,如创建日期、修改日期和文件大小等。 无论是在控制台界面还是图形用户界面中,我们可以实现各种操作和功能来使用和管理文件系统。使用Java可以方便地处理文件文件夹的操作,同时还可以提供良好的用户体验和可靠的文件管理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值