您好,登錄后才能下訂單哦!
利用Java怎么將字節(jié)數(shù)B轉(zhuǎn)化為KB、MB與GB?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
在文件處理的系統(tǒng)中,很容易就能通過一些系統(tǒng)自帶的方法取出其大小,問題是這個(gè)大小往往只是一個(gè)字節(jié)數(shù)B。
如果要把這個(gè)字節(jié)數(shù)轉(zhuǎn)化為KB、MB、GB的最終呈現(xiàn)給用戶,則涉及到整除與取余的算術(shù)運(yùn)算。
方法如下:
public static String getPrintSize(long size) { //如果字節(jié)數(shù)少于1024,則直接以B為單位,否則先除于1024,后3位因太少無(wú)意義 if (size < 1024) { return String.valueOf(size) + "B"; } else { size = size / 1024; } //如果原字節(jié)數(shù)除于1024之后,少于1024,則可以直接以KB作為單位 //因?yàn)檫€沒有到達(dá)要使用另一個(gè)單位的時(shí)候 //接下去以此類推 if (size < 1024) { return String.valueOf(size) + "KB"; } else { size = size / 1024; } if (size < 1024) { //因?yàn)槿绻訫B為單位的話,要保留最后1位小數(shù), //因此,把此數(shù)乘以100之后再取余 size = size * 100; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB"; } else { //否則如果要以GB為單位的,先除于1024再作同樣的處理 size = size * 100 / 1024; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB"; } }
在主函數(shù)調(diào)用幾個(gè)字節(jié)數(shù)B,進(jìn)行測(cè)試:
package fileSize; public class fileSizeTest { public static String getPrintSize(long size) { //如果字節(jié)數(shù)少于1024,則直接以B為單位,否則先除于1024,后3位因太少無(wú)意義 if (size < 1024) { return String.valueOf(size) + "B"; } else { size = size / 1024; } //如果原字節(jié)數(shù)除于1024之后,少于1024,則可以直接以KB作為單位 //因?yàn)檫€沒有到達(dá)要使用另一個(gè)單位的時(shí)候 //接下去以此類推 if (size < 1024) { return String.valueOf(size) + "KB"; } else { size = size / 1024; } if (size < 1024) { //因?yàn)槿绻訫B為單位的話,要保留最后1位小數(shù), //因此,把此數(shù)乘以100之后再取余 size = size * 100; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB"; } else { //否則如果要以GB為單位的,先除于1024再作同樣的處理 size = size * 100 / 1024; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB"; } } public static void main(String[] args) { System.out.println("來(lái)自 www.jb51.net 的測(cè)試結(jié)果:"); System.out.println(getPrintSize(200)); System.out.println(getPrintSize(200000)); System.out.println(getPrintSize(200000000)); System.out.println(getPrintSize(2000000000)); } }
運(yùn)行結(jié)果如下圖:
看完上述內(nèi)容,你們掌握利用Java怎么將字節(jié)數(shù)B轉(zhuǎn)化為KB、MB與GB的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。