Class DataSize

java.lang.Object
org.miaixz.bus.core.io.unit.DataSize
All Implemented Interfaces:
Comparable<DataSize>

public final class DataSize extends Object implements Comparable<DataSize>
数据大小,可以将类似于'12MB'表示转换为bytes长度的数字 此类来自于:Spring-framework
     byte        1B     1
     kilobyte    1KB    1,024
     megabyte    1MB    1,048,576
     gigabyte    1GB    1,073,741,824
     terabyte    1TB    1,099,511,627,776
 
Since:
Java 17+
Author:
Kimi Liu
  • Method Details

    • ofBytes

      public static DataSize ofBytes(long bytes)
      获得对应bytes的DataSize
      Parameters:
      bytes - bytes大小,可正可负
      Returns:
      this
    • ofKilobytes

      public static DataSize ofKilobytes(long kilobytes)
      获得对应kilobytes的DataSize
      Parameters:
      kilobytes - kilobytes大小,可正可负
      Returns:
      a DataSize
    • ofMegabytes

      public static DataSize ofMegabytes(long megabytes)
      获得对应megabytes的DataSize
      Parameters:
      megabytes - megabytes大小,可正可负
      Returns:
      a DataSize
    • ofGigabytes

      public static DataSize ofGigabytes(long gigabytes)
      获得对应gigabytes的DataSize
      Parameters:
      gigabytes - gigabytes大小,可正可负
      Returns:
      a DataSize
    • ofTerabytes

      public static DataSize ofTerabytes(long terabytes)
      获得对应terabytes的DataSize
      Parameters:
      terabytes - terabytes大小,可正可负
      Returns:
      a DataSize
    • of

      public static DataSize of(long amount, DataUnit unit)
      获得指定DataUnit对应的DataSize
      Parameters:
      amount - 大小
      unit - 数据大小单位,null表示默认的BYTES
      Returns:
      DataSize
    • of

      public static DataSize of(BigDecimal amount, DataUnit unit)
      获得指定DataUnit对应的DataSize
      Parameters:
      amount - 大小
      unit - 数据大小单位,null表示默认的BYTES
      Returns:
      DataSize
    • parse

      public static long parse(String text)
      获取指定数据大小文本对应的DataSize对象,如果无单位指定,默认获取DataUnit.BYTES

      例如:

       "12KB" -- parses as "12 kilobytes"
       "5MB"  -- parses as "5 megabytes"
       "20"   -- parses as "20 bytes"
       
      Parameters:
      text - the text to parse
      Returns:
      the parsed DataSize
      See Also:
    • parse

      public static DataSize parse(CharSequence text)
      获取指定数据大小文本对应的DataSize对象,如果无单位指定,默认获取DataUnit.BYTES

      例如:

       "12KB" -- parses as "12 kilobytes"
       "5MB"  -- parses as "5 megabytes"
       "20"   -- parses as "20 bytes"
       
      Parameters:
      text - the text to parse
      Returns:
      the parsed DataSize
      See Also:
    • parse

      public static DataSize parse(CharSequence text, DataUnit defaultUnit)
      Obtain a DataSize from a text string such as 12MB using the specified default DataUnit if no unit is specified.

      The string starts with a number followed optionally by a unit matching one of the supported suffixes.

      Examples:

       "12KB" -- parses as "12 kilobytes"
       "5MB"  -- parses as "5 megabytes"
       "20"   -- parses as "20 kilobytes" (where the defaultUnit is DataUnit.KILOBYTES)
       
      Parameters:
      text - the text to parse
      defaultUnit - 默认的数据单位
      Returns:
      the parsed DataSize
    • format

      public static String format(long size)
      Parameters:
      size - Long类型大小
      Returns:
      大小
    • isNegative

      public boolean isNegative()
      是否为负数,不包括0
      Returns:
      负数返回true,否则false
    • toBytes

      public long toBytes()
      返回bytes大小
      Returns:
      bytes大小
    • toKilobytes

      public long toKilobytes()
      返回KB大小
      Returns:
      KB大小
    • toMegabytes

      public long toMegabytes()
      返回MB大小
      Returns:
      MB大小
    • toGigabytes

      public long toGigabytes()
      返回GB大小
      Returns:
      GB大小
    • toTerabytes

      public long toTerabytes()
      返回TB大小
      Returns:
      TB大小
    • compareTo

      public int compareTo(DataSize other)
      Specified by:
      compareTo in interface Comparable<DataSize>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object