精华内容
下载资源
问答
  • 获取到的字节大小转换为如: 1.63.MB public void setSize(int size) { //获取到的size为:1705230 int GB = 1024 * 1024 * 1024;//定义GB的计算常量 int MB = 1024 * 1024;//定义MB的计算常量 int KB = ...

    将获取到的字节大小转换为如: 1.63.MB

     public void setSize(int size) {
            //获取到的size为:1705230
            int GB = 1024 * 1024 * 1024;//定义GB的计算常量
            int MB = 1024 * 1024;//定义MB的计算常量
            int KB = 1024;//定义KB的计算常量
            DecimalFormat df = new DecimalFormat("0.00");//格式化小数
            String resultSize = "";
            if (size / GB >= 1) {
                //如果当前Byte的值大于等于1GB
                resultSize = df.format(size / (float) GB) + "GB   ";
            } else if (size / MB >= 1) {
                //如果当前Byte的值大于等于1MB
                resultSize = df.format(size / (float) MB) + "MB   ";
            } else if (size / KB >= 1) {
                //如果当前Byte的值大于等于1KB
                resultSize = df.format(size / (float) KB) + "KB   ";
            } else {
                resultSize = size + "B   ";
            }
            this.size = resultSize;
        }


    展开全文
  • 如何在Java中将字节大小转换为人类可读的格式? 像1024应该变成“ 1 Kb”,而1024 * 1024应该变成“ 1 Mb”。我有点讨厌为每个项目编写此实用程序方法。 Apache Commons中是否有任何静态方法呢?#1楼filename=...

    如何在Java中将字节大小转换为人类可读的格式? 像1024应该变成“ 1 Kb”,而1024 * 1024应该变成“ 1 Mb”。

    我有点讨厌为每个项目编写此实用程序方法。 Apache Commons中是否有任何静态方法呢?

    #1楼

    filename=filedilg.getSelectedFile().getAbsolutePath();

    File file=new File(filename);

    String disp=FileUtils.byteCountToDisplaySize(file.length());

    System.out.println("THE FILE PATH IS "+file+"THIS File SIZE IS IN MB "+disp);

    #2楼

    public static String floatForm (double d)

    {

    return new DecimalFormat("#.##").format(d);

    }

    public static String bytesToHuman (long size)

    {

    long Kb = 1 * 1024;

    long Mb = Kb * 1024;

    long Gb = Mb * 1024;

    long Tb = Gb * 1024;

    long Pb = Tb * 1024;

    long Eb = Pb * 1024;

    if (size < Kb) return floatForm( size ) + " byte";

    if (size >= Kb && size < Mb) return floatForm((double)size / Kb) + " Kb";

    if (size >= Mb && size < Gb) return floatForm((double)size / Mb) + " Mb";

    if (size >= Gb && size < Tb) return floatForm((double)size / Gb) + " Gb";

    if (size >= Tb && size < Pb) return floatForm((double)size / Tb) + " Tb";

    if (size >= Pb && size < Eb) return floatForm((double)size / Pb) + " Pb";

    if (size >= Eb) return floatForm((double)size / Eb) + " Eb";

    return "???";

    }

    #3楼

    替代方案,这是基于此热门帖子的解决方案:

    /**

    * formats the bytes to a human readable format

    *

    * @param si true if each kilo==1000, false if kilo==1024

    */

    @SuppressLint("DefaultLocale")

    public static String humanReadableByteCount(final long bytes,final boolean si)

    {

    final int unit=si ? 1000 : 1024;

    if(bytes

    return bytes+" B";

    double result=bytes;

    final String unitsToUse=(si ? "k" : "K")+"MGTPE";

    int i=0;

    final int unitsCount=unitsToUse.length();

    while(true)

    {

    result/=unit;

    if(result

    break;

    // check if we can go further:

    if(i==unitsCount-1)

    break;

    ++i;

    }

    final StringBuilder sb=new StringBuilder(9);

    sb.append(String.format("%.1f ",result));

    sb.append(unitsToUse.charAt(i));

    if(si)

    sb.append('B');

    else sb.append('i').append('B');

    final String resultStr=sb.toString();

    return resultStr;

    }

    #4楼

    我们可以完全避免使用缓慢的Math.pow()和Math.log()方法而不牺牲简单性,因为单元之间的因子(例如B,KB,MB等)为1024,即2 ^ 10。 Long类有一个方便的numberOfLeadingZeros()方法,我们可以使用该方法判断大小值属于哪个单位。

    关键点:大小单位之间的距离为10位(1024 = 2 ^ 10),表示最高1位的位置-换句话说,前导零的数量相差10(字节= KB * 1024,KB = MB * 1024等)。

    前导零的数量与大小单位之间的相关性:

    # of leading 0's Size unit

    -------------------------------

    >53 B (Bytes)

    >43 KB

    >33 MB

    >23 GB

    >13 TB

    >3 PB

    <=2 EB

    最终代码:

    public static String formatSize(long v) {

    if (v < 1024) return v + " B";

    int z = (63 - Long.numberOfLeadingZeros(v)) / 10;

    return String.format("%.1f %sB", (double)v / (1L << (z*10)), " KMGTPE".charAt(z));

    }

    #5楼

    使用Android内置类

    对于Android,有一个Formatter类。 就像代码一样,您就完成了。

    android.text.format.Formatter.formatShortFileSize(activityContext, bytes);

    就像formatFileSize() ,但是尝试生成更短的数字(显示更少的小数)。

    android.text.format.Formatter.formatFileSize(activityContext, bytes);

    将内容大小格式化为字节,千字节,兆字节等形式。

    展开全文
  • 如果要把这个字节数转化为KB、MB、GB的最终呈现给用户,则涉及到整除与取余的算术运算。方法如下:public static String getPrintSize(long size) {//如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因...

    在文件处理的系统中,很容易就能通过一些系统自带的方法取出其大小,问题是这个大小往往只是一个字节数B。

    如果要把这个字节数转化为KB、MB、GB的最终呈现给用户,则涉及到整除与取余的算术运算。

    方法如下:

    public static String getPrintSize(long size) {

    //如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义

    if (size < 1024) {

    return String.valueOf(size) + "B";

    } else {

    size = size / 1024;

    }

    //如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位

    //因为还没有到达要使用另一个单位的时候

    //接下去以此类推

    if (size < 1024) {

    return String.valueOf(size) + "KB";

    } else {

    size = size / 1024;

    }

    if (size < 1024) {

    //因为如果以MB为单位的话,要保留最后1位小数,

    //因此,把此数乘以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";

    }

    }在主函数调用几个字节数B,进行测试:

    package fileSize;

    public class fileSizeTest {

    public static String getPrintSize(long size) {

    //如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义

    if (size < 1024) {

    return String.valueOf(size) + "B";

    } else {

    size = size / 1024;

    }

    //如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位

    //因为还没有到达要使用另一个单位的时候

    //接下去以此类推

    if (size < 1024) {

    return String.valueOf(size) + "KB";

    } else {

    size = size / 1024;

    }

    if (size < 1024) {

    //因为如果以MB为单位的话,要保留最后1位小数,

    //因此,把此数乘以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(getPrintSize(200));

    System.out.println(getPrintSize(200000));

    System.out.println(getPrintSize(200000000));

    System.out.println(getPrintSize(2000000000));

    }

    }运行结果如下图:

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • * byte(字节)根据长度成kb(千字节)和mb(兆字节) * * @param bytes * @return */ public static int bytes2kb(int bytes) { BigDecimal filesize = new BigDecimal(bytes); BigDecimal megabyte = new ...

    读取二进制文件长度,将其转换为kb或者mb

    	/**
         * byte(字节)根据长度转成kb(千字节)和mb(兆字节)
         *
         * @param bytes
         * @return
         */
        public static int bytes2kb(int bytes) {
            BigDecimal filesize = new BigDecimal(bytes);
            BigDecimal megabyte = new BigDecimal(1024 * 1024);
            float returnValue = filesize.divide(megabyte, 2, BigDecimal.ROUND_UP)
                    .floatValue();
            if (returnValue > 1)
                return (int) returnValue;
            BigDecimal kilobyte = new BigDecimal(1024);
            returnValue = filesize.divide(kilobyte, 2, BigDecimal.ROUND_UP)
                    .floatValue();
            return (int) Math.ceil(returnValue);
        }

    若是需要返回文本,则自己拼接下即可

    展开全文
  • //字节转换 public static String readableFileSize(long size) { if (size <= 0) return "0"; final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"}; int digitGroups = (int) (...
  • /*** @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* @param str* 待转换字符串* @return 转换后字符串* @throws UnsupportedEncodingException...
  • /*** @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* @param str* 待转换字符串* @return 转换后字符串* @throws UnsupportedEncodingException...
  • /*** @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* @param str* 待转换字符串* @return 转换后字符串* @throws UnsupportedEncodingException...
  • /*** @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* @param str* 待转换字符串* @return 转换后字符串* @throws UnsupportedEncodingException...
  • 很多时候针对视频信息,数据库中存储的视频大小是字节类型,然后我们在页面中显示则需要使用的是标准的视频大小显示格式,我这里工具类最多显示的是Mb,如果需求要显示G的话可自行参照修改。  直接上工具类和测试...
  • java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x82' for column 'spda_content' at row 1错误原因是因为:mysql中utf8字符最大字节为3字节,但是某些unicode字符成utf8编码之后有4个字节,所以...
  • java转换emoji表情

    2019-09-26 06:55:48
    /** * @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集) * @param str * 待转换字符串 * @return 转换后字符串 * @throws ......
  • 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容无法得分。 这是真的送分题 12.5*1024...
  • 更改MySQL数据库的编码为utf8mb4utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java...
  • ByteFormatTest.java

    2019-12-27 10:21:47
    java字节转为‘KB’、‘MB’、‘GB’、‘TB’(无字节长度限制,可超出long类型) 此工具类可以电脑内存储的字节数字转为‘KB’、‘MB’、‘GB’、‘TB’,无数字大小限制,可随意转换
  • utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql....
  • Java 解决Emoji表情过滤问题

    万次阅读 2018-02-26 14:29:57
    问题: Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。...已经建好的表也转换成utf8mb4,这个方法不可行,有的时候就不灵了。2,写个工具类:过滤掉emoji表情符号public class EmojiFilter { ...
  • java如何存储表情

    2020-02-11 16:38:20
    * @Description 字符串中的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集) * @param str * 待转换字符串 * @return 转换后字符串 * @throws ...
  • Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。...已经建好的表也转换成utf8mb42,写个工具类:过滤掉emoji表情符号public class EmojiFilter {private static boolean isEmojiCha...
  • Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。...已经建好的表也转换成utf8mb42,写个工具类:过滤掉emoji表情符号public class EmojiFilter {private static boolean isEmojiCha...
  • Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。...已经建好的表也转换成utf8mb42,写个工具类:过滤掉emoji表情符号public class EmojiFilter {private static boolean isEmojiCh...
  • 展开全部/*** @Description 字符串中62616964757a686964616fe4b893e5b19e31333365653136的emoji表情转换成可以在utf-8字符集数据库中保存的格式(表情占4个字节,需要utf8mb4字符集)* @param str* 待转换字符串* @...
  • 本文作者原文链接本人使用的是第三种引入jar的方法问题:emoji表情从三方数据中获取没有过滤,...已经建好的表也转换成utf8mb4,这个方法不可行,有的时候就不灵了。2,写个工具类:过滤掉emoji表情符号public cla...
  • 本文作者我是周洲本人使用的是第三种引入jar的方法问题:Emoji表情从三方数据中获取没有过滤,...已经建好的表也转换成utf8mb4,这个方法不可行,有的时候就不灵了。2,写个工具类:过滤掉emoji表情符号public cl...
  • Java2核心技术第7版全两卷.pdf中文高清

    千次下载 热门讨论 2012-09-14 14:22:28
    本资源内有两本书《Java2核心技术卷I:基础知识(第7版)》和《JAVA2核心技术,卷II:高级特性(第7版)》,大小分别为 88MB 和 112 BM,均为 PDF 格式,高清影印版。两本书分别介绍如下: 《Java2核心技术卷I:基础知识...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

java将字节转mb

java 订阅