前言
今天產(chǎn)品提出來一個(gè)需求,上傳文件的時(shí)候要記錄文件的大小,并且保存到數(shù)據(jù)庫里面。
正好借著這個(gè)機(jī)會(huì),分享下對文件大小進(jìn)行單位轉(zhuǎn)化的一個(gè)方法。
獲取文件大小(原字節(jié))。
一般和前后端進(jìn)行文件交互,都是通過MultipartFile實(shí)現(xiàn)的,它有一個(gè)方法:getSize()
無需參數(shù),返回的是該文件Long類型的字節(jié)。
我們可以通過它獲取到上傳的文件的原字節(jié)
我本地有一個(gè)文件,可以看到它的文件大小,一會(huì)我就用它進(jìn)行測試:
然和測試接口,就用這個(gè)文件:
可以發(fā)現(xiàn),獲取到的文件大小和原字節(jié)是一模一樣的
獲取文件大小(單位轉(zhuǎn)化)。
雖然可以獲取到文件的原字節(jié)大小,但是有的需求是需要我們把這個(gè)字節(jié)進(jìn)行單位轉(zhuǎn)換的。
這時(shí)候需要我們一個(gè)方法,把獲取到的文件字節(jié)傳進(jìn)去,然后返回的就是字節(jié)轉(zhuǎn)換后的文件大小
private String formatSize(long fileS) {
DecimalFormat df = new DecimalFormat("#.00");
String fileSizeString = "";
String wrongSize = "0B";
if (fileS == 0) {
return wrongSize;
}
if (fileS < 1024) {
fileSizeString = df.format((double) fileS) + "B";
} else if (fileS < 1048576) {
fileSizeString = df.format((double) fileS / 1024) + "KB";
} else if (fileS < 1073741824) {
fileSizeString = df.format((double) fileS / 1048576) + "MB";
} else {
fileSizeString = df.format((double) fileS / 1073741824) + "GB";
}
return fileSizeString;
}
這時(shí)候再來測試下代碼,發(fā)現(xiàn)文件大小格式已經(jīng)轉(zhuǎn)變了。
文章來源:http://www.zghlxwxcb.cn/news/detail-602206.html
這時(shí)候,就可以根據(jù)自己的需求,看看需要儲(chǔ)存哪種文件大小格式就好了。文章來源地址http://www.zghlxwxcb.cn/news/detail-602206.html
到了這里,關(guān)于Java獲取上傳的文件大小并且轉(zhuǎn)換對文件大小進(jìn)行單位轉(zhuǎn)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!