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)
  • 相关阅读:
    解决:Requested 'libdrm_radeon >= 2.4.56' but version of libdrm_radeon is 2.4.52
    解决Ubuntun 12.04编译Mesa10.3 WARNING: 'aclocal-1.14' is missing on your system
    交叉编译Mesa,X11lib,Qt opengl
    Qt5.4.1移植到arm——Linuxfb篇
    Qt5.3.0的安装与测试
    gstreamer——文档/资源/使用
    gst-rtsp-server编译测试
    gstreamer-tips-picture-in-picture-compositing
    Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
    Matlab实现单(双)极性(不)归零码
  • 原文地址:https://www.cnblogs.com/fzlzc/p/10780624.html
Copyright © 2011-2022 走看看