要求
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
代码
import java.io.*;
public class MyCP{
public static void main(String[] args) {
String op =args[0];
String File1 = args[1];
String File2 = args[2];
File fRead = new File(File1);
File fWrite = new File(File2);
try{
Writer out = new FileWriter(fWrite);
BufferedWriter bufferWrite = new BufferedWriter(out);
Reader in = new FileReader(fRead);
BufferedReader bufferRead = new BufferedReader(in);
String str = null;
String output = "";
while((str=bufferRead.readLine())!=null){
if(op.equals("-tx")){
int number = Integer.valueOf(str);
output = Integer.toBinaryString(number);
if(output.length()==1){
output="000"+output;
}
else if(output.length()==2)
{
output="00"+output;
}
else if(output.length()==3)
{
output="0"+output;
}
bufferWrite.write(output);
bufferWrite.newLine();
}
else if(op.equals("-xt")){
int number = Integer.parseInt(str,2);
output = String.valueOf(number);
bufferWrite.write(output);
bufferWrite.newLine();
}
}
bufferWrite.close();
out.close();
bufferRead.close();
in.close();
}
catch(IOException e)
{
System.out.println(e);
}
}
}