日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20175221 MyCP(课下作业,必做)

發(fā)布時間:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20175221 MyCP(课下作业,必做) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MyCP(課下作業(yè),必做)

任務(wù)詳情

  • 編寫MyCP.java 實(shí)現(xiàn)類似Linux下cp XXX1 XXX2的功能,要求MyCP支持兩個參數(shù):
  • - java MyCP -tx XXX1.txt XXX2.bin 用來把文本文件(內(nèi)容為十進(jìn)制數(shù)字)轉(zhuǎn)化為二進(jìn)制文件 - java MyCP -xt XXX1.bin XXX2.txt 用來二進(jìn)制文件把轉(zhuǎn)化為文本文件(內(nèi)容為十進(jìn)制數(shù)字)
  • 提交測試代碼和運(yùn)行結(jié)果截圖,加上學(xué)號水印,提交碼云代碼鏈接。 需要提交博客和答辯

設(shè)計(jì)思路

  • ?剛看題目時,理解錯了題目的意思,以為是要把一個二進(jìn)制文件先轉(zhuǎn)換成序列,再輸出對應(yīng)的十進(jìn)制,最后把序列轉(zhuǎn)換成文件。后來和同學(xué)討論才發(fā)現(xiàn),自己沒仔細(xì)看題,理解錯了方向。

  • 由于太久沒使用Linux的操作指令,于是使用?man?,?cp --help?來了解對應(yīng)功能
  • 我大概構(gòu)思了一下,要完成這個實(shí)驗(yàn)可能會遇到的一些難點(diǎn):

  • 如何完成二進(jìn)制與十進(jìn)制數(shù)字的互相轉(zhuǎn)換
  • 在txt中轉(zhuǎn)化完的數(shù)據(jù),怎樣寫入另一個文件
  • 針對這幾個問題,我去查閱了相關(guān)資料

  • 十進(jìn)制轉(zhuǎn)二進(jìn)制:

  • 二進(jìn)制轉(zhuǎn)十進(jìn)制

  • 文件的寫入和讀取

  • 代碼如下

  • 1 import java.io.*; 2 import java.util.Scanner; 3 public class MyCP { 4 public static void main(String[] args) throws IOException { 5 //輸入十進(jìn)制文本 6 Scanner scan=new Scanner(System.in); 7 String str=scan.nextLine(); 8 String[]ch=str.split(" "); 9 //調(diào)用tx方法把文本文件轉(zhuǎn)化為二進(jìn)制文件 10 if(ch[2].equals("-tx")){ 11 FileReader reader = new FileReader("/home/zxj/twoweek/MyCP/testorigin.txt"); 12 FileWriter writer = new FileWriter("/home/zxj/twoweek/MyCP/testchange.bin"); 13 tx(reader, writer); 14 } 15 //用xt方法把二進(jìn)制文件把轉(zhuǎn)化為文本文件 16 if(ch[2].equals("-xt")){ 17 FileReader reader = new FileReader("/home/zxj/twoweek/MyCP/testchange.bin"); 18 FileWriter writer = new FileWriter("/home/zxj/twoweek/MyCP/testchange2.txt"); 19 xt(reader, writer); 20 } 21 } 22 public static void tx(FileReader reader, FileWriter writer) { 23 try (FileReader In = reader; FileWriter Out = writer) { 24 char[] number = new char[1]; 25 while((In.read(number))!=-1) {//FileReader的read()方法獲取對應(yīng)的十進(jìn)制數(shù)字 26 int number1=(int)number[0]; 27 String result=""; 28 String totwo=Integer.toBinaryString(number1);//調(diào)用Integer.toBinaryString將十進(jìn)制轉(zhuǎn)為二進(jìn)制 29 for(int i=0;i<8;i++){//返回一個二進(jìn)制的無符號整數(shù) 30 if(i<(8-totwo.length())) { 31 result = result+'0'; 32 } 33 } 34 result=result+totwo; 35 Out.write(result, 0, 8);//FileWriter的write()方法保存得到的二進(jìn)制 36 Out.write(" "); 37 } 38 }catch (IOException e) { 39 e.printStackTrace(); 40 } 41 } 42 public static void xt(FileReader reader, FileWriter writer) { 43 try (FileReader In = reader; FileWriter Out = writer) { 44 char[] number = new char[8]; 45 char[] ch = new char[1]; 46 while((In.read(number))!=-1) { 47 String result=""; 48 In.read();//FileReader的read()方法獲取對應(yīng)的8位二進(jìn)制數(shù)字 49 for(int i=0;i<8;i++){ 50 result=result+number[i]; 51 } 52 int ten=Integer.valueOf(result,2);//Integer.valueOf()方法將二進(jìn)制轉(zhuǎn)為十進(jìn)制 53 ch[0]=(char)ten; 54 Out.write(ch, 0, 1);//FileWriter的write()方法保存得到的十進(jìn)制 55 } 56 }catch (IOException e) { 57 e.printStackTrace(); 58 } 59 60 } 61 62 }

    ?

    ?

結(jié)果截圖

  • 首先在指定路徑下創(chuàng)建文本,并在其中輸入十進(jìn)制數(shù)字

?

  • 執(zhí)行?java MyCP -tx testorigin.txt testchange.bin?,生成含有對應(yīng)二進(jìn)制數(shù)字的bin文件
  • 查看bin文件內(nèi)容
  • 再執(zhí)行?java MyCP -xt testchange.bin testchange2.txt?,將二進(jìn)制數(shù)字再轉(zhuǎn)換回十進(jìn)制數(shù)字,并生成文本文件
  • 問題與解決方法

  • 問題1:

  • 生成的bin文件無法打開查看

  • 問題1解決方法:

  • 我點(diǎn)擊選擇程序,查找相關(guān)應(yīng)用,但遺憾的是沒有合適的應(yīng)用可以安裝來打開bin文件,我只好回到命令行進(jìn)到vim編輯頁面查看。

  • 問題2:

  • 輸入命令報錯找不到路徑文件
  • 問題2解決方法:

  • 這個是自己犯傻了,執(zhí)行命令之前,沒有創(chuàng)建對應(yīng)的十進(jìn)制文本文件。所以只要在執(zhí)行命令前,在指定路徑下創(chuàng)建對應(yīng)的十進(jìn)制文本文件即可。

碼云鏈接

?

參考資料

Integer.parseInt(s)與Integer.valueOf(s)的區(qū)別詳解

java源碼Integer類toBinaryString()方法探究

java FileReader和FileWriter

轉(zhuǎn)載于:https://www.cnblogs.com/zxja/p/10778735.html

總結(jié)

以上是生活随笔為你收集整理的20175221 MyCP(课下作业,必做)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。