zoukankan      html  css  js  c++  java
  • 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能


    • 题目:编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
      • 要求:MyCP支持两个参数:
        • java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
        • java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

    • 前置知识
      • cp命令:
        • 作用:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
        • 参数:cp指令根据参数选择功能

    • 具体实现

      • 产品代码:
      import java.io.*;
      
       public class MyCP {
       public static void main(String args[]) {
           String choose = args[0];
           //获得第一个参数
           String File1 = args[1];
           //获得第二个参数:文件名
           String File2 = args[2];
           //获得第三个参数:文件名
           File sourceFile = new File(File1);
           //读取的文件
           File targetFile = new File(File2);
           //写入的文件
           int ch = 0;
           String result = "";
           //转换结果
           if (choose.equals("-tx")) {
               ch = 1;
           }
           else if (choose.equals("-xt")) {
               ch = 2;
           }
           //参数判断
           else {
               System.out.println("输入参数错误!");
               System.exit(0);
           }
           //如果参数输入错误,退出程序
           try {
               FileWriter out = new FileWriter(targetFile);
               //指向目的地的输出流
               FileReader in = new FileReader(sourceFile);
               //指向源的输入流
               BufferedReader infile = new BufferedReader(in);
               BufferedWriter outfile = new BufferedWriter(out);
               //缓冲流
               String number = infile.readLine();
               if (ch == 1) {
                   int n, temp = Integer.parseInt(number);
                   for (int i = temp; i > 0; i = i / 2) {
                       if (i % 2 == 0)
                           n = 0;
                       else
                           n = 1;
                       result = n + result;
                   }
               } else if (ch == 2) {
                   result = Integer.valueOf(number, 2).toString();
               }
               outfile.write(result);
               outfile.flush();
               outfile.close();
           } catch (IOException e) {
               System.out.println("Error " + e);
           }
       }
      

    }

    
    ---
    
    - 运行截图
    - 参数为-tx时
    ![](https://img2018.cnblogs.com/blog/1592121/201904/1592121-20190427220104652-217300836.png)
    ![](https://img2018.cnblogs.com/blog/1592121/201904/1592121-20190427220110341-554248219.png)
    
    
    
    
    
    
    
    
    - 参数为-xt时
    ![](https://img2018.cnblogs.com/blog/1592121/201904/1592121-20190427220123396-349756880.png)
    ![](https://img2018.cnblogs.com/blog/1592121/201904/1592121-20190427220127985-766980837.png)
    
    
    ---
    
    - [码云托管链接](https://gitee.com/fzlzc/java2019/blob/master/src/MyCP.java)
  • 相关阅读:
    World file文件格式
    HTML5 基础
    Spring Framework---概况
    Tomcat(1)
    警言妙句
    嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
    关键字volatile有什么含意?并给出三个不同的例子。
    关键字const有什么含意?
    关于指针数组、数组指针、指针函数、函数指针等的问题
    实现两个int变量的值的交换,要求不使用临时变量。
  • 原文地址:https://www.cnblogs.com/fzlzc/p/10780624.html
Copyright © 2011-2022 走看看