MyCP(课下作业,必做)
1.作业要求
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
2.涵盖内容
十进制转成十六进制:
Integer.toHexString(int i)
十六进制转成十进制 :
Integer.valueOf("FFFF",16).toString()
十进制转成八进制:
Integer.toOctalString(int i)
八进制转成十进制:
Integer.valueOf("876",8).toString()
十进制转成二进制:
Integer.toBinaryString(int i) (public static String toBinaryString(int i))
二进制转十进制:
Integer.valueOf("0101",2).toString() (public static Integer valueOf(String s, int radix))
3.作业代码
import java.io.*;
public class MyCP{
public static void main(String[] args) throws IOException {
String file = "D:/MyCP/A.txt";
String s =dataInputStream(file);
FileOutputStream fps = new FileOutputStream("D:/MyCP/B.txt");
fps.write(s.getBytes());
fps.close();
}
public static String dataInputStream(String file) throws IOException {
File file2 = new File(file);
DataInputStream dls = new DataInputStream(new FileInputStream(file2));
StringBuilder byData = new StringBuilder();
byte b = 0;
for(int i=0;i<file2.length();i++) {
b = dls.readByte();
String str = Integer.toBinaryString(b);
if(str.length() == 1) {
str = "0"+str; }
byData.append(str.toUpperCase());
}
return byData.toString();
}
}
4.运行截图
5.作业中遇到的问题及解决方法
修改文件路径即可解决
6.码云链接
https://gitee.com/WZL-DM/BESTI.java.is.20175131/blob/master/src/MyCP.java