Package org.springframework.util.unit
Class DataSize
java.lang.Object
org.springframework.util.unit.DataSize
- All Implemented Interfaces:
Serializable
,Comparable<DataSize>
A data size, such as '12MB'.
This class models data size in terms of bytes and is immutable and thread-safe.
The terms and units used in this class are based on
binary prefixes
indicating multiplication by powers of 2. Consult the following table and
the Javadoc for DataUnit
for details.
Term | Data Size | Size in Bytes |
---|---|---|
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:
- 5.1
- Author:
- Stephane Nicoll, Sam Brannen
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionint
boolean
int
hashCode()
boolean
Checks if this size is negative, excluding zero.static DataSize
static DataSize
ofBytes
(long bytes) Obtain aDataSize
representing the specified number of bytes.static DataSize
ofGigabytes
(long gigabytes) Obtain aDataSize
representing the specified number of gigabytes.static DataSize
ofKilobytes
(long kilobytes) Obtain aDataSize
representing the specified number of kilobytes.static DataSize
ofMegabytes
(long megabytes) Obtain aDataSize
representing the specified number of megabytes.static DataSize
ofTerabytes
(long terabytes) Obtain aDataSize
representing the specified number of terabytes.static DataSize
parse
(CharSequence text) static DataSize
parse
(CharSequence text, DataUnit defaultUnit) long
toBytes()
Return the number of bytes in this instance.long
Return the number of gigabytes in this instance.long
Return the number of kilobytes in this instance.long
Return the number of megabytes in this instance.toString()
long
Return the number of terabytes in this instance.
-
Method Details
-
ofBytes
Obtain aDataSize
representing the specified number of bytes.- Parameters:
bytes
- the number of bytes, positive or negative- Returns:
- a
DataSize
-
ofKilobytes
Obtain aDataSize
representing the specified number of kilobytes.- Parameters:
kilobytes
- the number of kilobytes, positive or negative- Returns:
- a
DataSize
-
ofMegabytes
Obtain aDataSize
representing the specified number of megabytes.- Parameters:
megabytes
- the number of megabytes, positive or negative- Returns:
- a
DataSize
-
ofGigabytes
Obtain aDataSize
representing the specified number of gigabytes.- Parameters:
gigabytes
- the number of gigabytes, positive or negative- Returns:
- a
DataSize
-
ofTerabytes
Obtain aDataSize
representing the specified number of terabytes.- Parameters:
terabytes
- the number of terabytes, positive or negative- Returns:
- a
DataSize
-
of
- Parameters:
amount
- the amount of the size, measured in terms of the unit, positive or negative- Returns:
- a corresponding
DataSize
-
parse
Obtain aDataSize
from a text string such as12MB
usingDataUnit.BYTES
if no unit is specified.Examples:
"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
Obtain aDataSize
from a text string such as12MB
using the specified defaultDataUnit
if no unit is specified.The string starts with a number followed optionally by a unit matching one of the supported suffixes.
If neither a unit nor a default
DataUnit
is specified,DataUnit.BYTES
will be inferred.Examples:
"12KB" -- parses as "12 kilobytes" "5MB" -- parses as "5 megabytes" "20" -- parses as "20 kilobytes" (where the
defaultUnit
isDataUnit.KILOBYTES
) "20" -- parses as "20 bytes" (if thedefaultUnit
isnull
)- Parameters:
text
- the text to parsedefaultUnit
- the defaultDataUnit
to use- Returns:
- the parsed
DataSize
-
isNegative
public boolean isNegative()Checks if this size is negative, excluding zero.- Returns:
- true if this size has a size less than zero bytes
-
toBytes
public long toBytes()Return the number of bytes in this instance.- Returns:
- the number of bytes
-
toKilobytes
public long toKilobytes()Return the number of kilobytes in this instance.- Returns:
- the number of kilobytes
-
toMegabytes
public long toMegabytes()Return the number of megabytes in this instance.- Returns:
- the number of megabytes
-
toGigabytes
public long toGigabytes()Return the number of gigabytes in this instance.- Returns:
- the number of gigabytes
-
toTerabytes
public long toTerabytes()Return the number of terabytes in this instance.- Returns:
- the number of terabytes
-
compareTo
- Specified by:
compareTo
in interfaceComparable<DataSize>
-
toString
-
equals
-
hashCode
public int hashCode()
-