week3任务

第三周:
pwd:打印当前目录
ls:打印当前目录下的所有文件
cd:跳转到dir文件夹
cat:打印file文件内容
mkdir:创建文件夹
cp:复制file中的内容到copy中

import java.io.BufferedReader;
import java.util.Scanner;
import java.io.File;
import java.io.*;
import java.lang.String;

public class shellOrder {
    public static void main(String[] args) {
        System.out.println("\npwd:打印当前目录\nls:打印当前目录下的所有文件\ncd:跳转到dir文件夹\ncat:打印file文件内容\nmkdir:创建文件夹\ncp:复制file中的内容到copy中\n输入“#”结束输入");
        Scanner sc = new Scanner(System.in);
        String curruntPath = System.getProperty("user.dir");
        File dir =new File(curruntPath);
        pwd ppwd = new pwd();
        ls lls = new ls();
        cd ccd = new cd();
        cat ccat = new cat();
        mkdir mmkdir = new mkdir();
        cp ccp = new cp();
        String str=null;
        String strs = null;
        while (!sc.hasNext("#")){
            str = sc.nextLine();
            strs = str.substring(0,2);
            switch (strs) {
                case "pw":
                    ppwd.pwd(dir);
                    break;
                case "ls":
                    lls.ls(dir);
                    break;
                case "cd":
                    File newdir = ccd.cd(str,dir);
                    dir = newdir;
                    break;
                case "ca":
                    try{
                        ccat.cat(dir);
                    }catch(Exception ex){
                        break;
                    }
                    break;
                case "mk":
                    mmkdir.mkdir(str,dir);
                    break;
                case "cp":
                    try{
                        ccp.cp();
                    }catch(Exception ex){
                        break;
                    }
                    break;
            }
        }
    }
}
class pwd{
    public void pwd(File dir){
        System.out.println(dir.getPath());
      }
}
 class ls{
    public void ls(File dir){
        String[] filelist = dir.list();
        for(String str:filelist){
            System.out.println(str);
        }
    }
}
 class cd{
    public File cd(String str,File dir){
        String filename = str.substring(3);
        if(filename.charAt(0) == '/'){//若要跳转到其他目录需要加'/'
            File dirtt = new File(filename);
            return dirtt;
        }
        String direction = dir.getPath() + "/" + filename;
        File newdir = new File(direction);
        return newdir;
    }
}
 class cat{
    public void cat(File dir) throws Exception{
        File sdir = dir;
        InputStreamReader read=new InputStreamReader(new FileInputStream(sdir));
        BufferedReader bufferedReader = new BufferedReader(read);
        String str = null;
        while((str = bufferedReader.readLine()) != null){
            System.out.println(str);
        }
    }
}
 class mkdir{
    public void mkdir(String str,File dir){
        String[] okk = str.split(" ");
        String filename = okk[1];
        File newfile = new File(dir.getPath() + "/" + filename);
        if(!newfile.exists()){
            newfile.mkdirs();
        }
    }
}
class cp{
    public void cp() throws Exception{
        System.out.println("输入copy文件的路径");
        Scanner sc = new Scanner(System.in);
        String cpfilename = sc.nextLine();
        System.out.println("输入file文件的路径");
        String filename = sc.nextLine();
        File copy = new File(cpfilename);
        FileWriter fw = new FileWriter(copy);
        BufferedWriter bw = new BufferedWriter(fw);
        InputStreamReader read=new InputStreamReader(new FileInputStream(filename));
        BufferedReader bufferedReader = new BufferedReader(read);
        String str = null;
        while((str = bufferedReader.readLine()) != null){
            bw.write(str+'\n');
        }
        bw.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白头若是雪可替

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值