MyCP(课下作业,必做)

MyCP(课下作业,必做)

要求

编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:

  • java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
  • java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

设计思路

  • 输入一个字符串,以空格分隔,判断是哪种转换;^_^但是我从做完的同学那里借鉴来了args[],发现就简单很多

String[] args 可以看出来是一个数组。在命令行中比如运行 Test.class 文件
java MyCP MyCP -tx a.txt b.bin相当于给数组传入了一个 MyCP MyCP -tx a.txt b.bin 字符串。

  • 十进制转二进制 public static String toBinaryString(int i)
    1595845-20190427192502960-1299822619.png

  • 二进制转十进制public static Integer valueOf(String s, int radix)
    1595845-20190427192907211-1901979926.png

  • 从文件读取,输出到文件->选择缓冲流,可以一次把数据读取

源代码

import java.io.*;
public class MyCP {
    public static void main(String[] args) {
        String transformMethod = args[0];
        File source = new File(args[1]);
        File target = new File(args[2]);
        try {
            Reader in = new FileReader(source);
            BufferedReader bufferedReader = new BufferedReader(in);
            String srcNum = bufferedReader.readLine();
            String tarNum = "";
            if(transformMethod.equals("-tx")){             //十进制转二进制
                tarNum = Integer.toBinaryString(Integer.parseInt(srcNum));
            }
            else{
                tarNum = Integer.valueOf(srcNum,2).toString();
            }
            Writer out = new FileWriter(target);
            BufferedWriter bufferedWriter = new BufferedWriter(out);
            bufferedWriter.write(tarNum);
            bufferedReader.close();
            bufferedWriter.close();
        } catch (Exception e) {
            System.out.println(e);
        }


    }
}

运行结果

1595845-20190427195423394-521469769.png

1595845-20190427195433279-1786881693.png

码云链接

参考

Java String[] args 作用

转载于:https://www.cnblogs.com/orii/p/10780202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值