Package adams.core
Class ByteFormat
- java.lang.Object
-
- adams.core.ByteFormat
-
- All Implemented Interfaces:
Serializable
public class ByteFormat extends Object implements Serializable
Formatting class for turning byte amounts into kb, mb, etc.
Format: {b|B}[.N]{k|K|m|M|g|G|t|T|p|P|e|E|z|Z|y|Y[i]}
- b|B
"b" outputs the amount without thousand separators, "B" includes them. - .N
Prints "N" decimal places - k|K|m|M|g|G|t|T|p|P|e|E|z|Z|y|Y
Specifies the unit to use: k|K=kilobytes, m|M=megabytes, g|G=gigabytes, t|T=terabytes, p|P=petabytes, e|E=exabytes, z|Z=zettabytes, y|Y=yottabytes
Lower case does not add a specifier like "KB", upper case does. - Adding "i" at the end uses 1024 as base instead of 1000.
- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classByteFormat.UnitThe available units.
-
Field Summary
Fields Modifier and Type Field Description protected booleanm_AddUnitwhether to add a unit specifier at the end.protected Stringm_Formatthe format string.protected intm_NumDecimalsthe number of decimals to use.protected ByteFormat.Unitm_Unitthe conversion unit.protected booleanm_UseThousandSeparatorswhether to use thousand separators or not.
-
Constructor Summary
Constructors Constructor Description ByteFormat(String format)Initializes the formatter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Stringformat(double bytes)Formats the given byte amount according to the format.Stringformat(long bytes)Formats the given byte amount according to the format.StringgetFormat()Returns the format being used.static StringinsertThousandSeparators(String number)Inserts thousand separators into the number string (integer or float).booleanisValid(String format)Tests the format.protected booleanparseFormat(String format, boolean justTest)Parses the format.static StringtoBestFitBiBytes(double bytes, int decimals)Turns the number of bytes in the shortest representation (KiB, MiB, GiB, ...).static StringtoBestFitBytes(double bytes, int decimals)Turns the number of bytes in the shortest representation (KB, MB, GB, ...).static StringtoExaBytes(double bytes, int decimals)Turns the number of bytes into EB.static StringtoExbiBytes(double bytes, int decimals)Turns the number of bytes into EiB.static StringtoGibiBytes(double bytes, int decimals)Turns the number of bytes into GiB.static StringtoGigaBytes(double bytes, int decimals)Turns the number of bytes into GB.static StringtoKibiBytes(double bytes, int decimals)Turns the number of bytes into KiB.static StringtoKiloBytes(double bytes, int decimals)Turns the number of bytes into KB.static StringtoMebiBytes(double bytes, int decimals)Turns the number of bytes into MiB.static StringtoMegaBytes(double bytes, int decimals)Turns the number of bytes into MB.static StringtoPebiBytes(double bytes, int decimals)Turns the number of bytes into PiB.static StringtoPetaBytes(double bytes, int decimals)Turns the number of bytes into PB.StringtoString()Returns a short string description.static StringtoTebiBytes(double bytes, int decimals)Turns the number of bytes into TiB.static StringtoTeraBytes(double bytes, int decimals)Turns the number of bytes into TB.static StringtoYobiBytes(double bytes, int decimals)Turns the number of bytes into YiB.static StringtoYottaBytes(double bytes, int decimals)Turns the number of bytes into YB.static StringtoZebiBytes(double bytes, int decimals)Turns the number of bytes into ZiB.static StringtoZettaBytes(double bytes, int decimals)Turns the number of bytes into ZB.
-
-
-
Field Detail
-
m_Format
protected String m_Format
the format string.
-
m_UseThousandSeparators
protected boolean m_UseThousandSeparators
whether to use thousand separators or not.
-
m_NumDecimals
protected int m_NumDecimals
the number of decimals to use.
-
m_Unit
protected ByteFormat.Unit m_Unit
the conversion unit.
-
m_AddUnit
protected boolean m_AddUnit
whether to add a unit specifier at the end.
-
-
Constructor Detail
-
ByteFormat
public ByteFormat(String format)
Initializes the formatter.- Parameters:
format- the format to use
-
-
Method Detail
-
parseFormat
protected boolean parseFormat(String format, boolean justTest)
Parses the format.- Parameters:
format- the format to parsejustTest- if true then parameters derived won't be set
-
isValid
public boolean isValid(String format)
Tests the format.- Parameters:
format- the format to test- Returns:
- true if valid
-
getFormat
public String getFormat()
Returns the format being used.- Returns:
- the format, null if invalid one provided
-
format
public String format(long bytes)
Formats the given byte amount according to the format.- Parameters:
bytes- the amount to format- Returns:
- the formatted amount
-
format
public String format(double bytes)
Formats the given byte amount according to the format.- Parameters:
bytes- the amount to format- Returns:
- the formatted amount
-
toString
public String toString()
Returns a short string description.
-
insertThousandSeparators
public static String insertThousandSeparators(String number)
Inserts thousand separators into the number string (integer or float).- Parameters:
number- the string to inject with separators- Returns:
- the processed string
-
toKiloBytes
public static String toKiloBytes(double bytes, int decimals)
Turns the number of bytes into KB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the KB string
-
toMegaBytes
public static String toMegaBytes(double bytes, int decimals)
Turns the number of bytes into MB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the MB string
-
toGigaBytes
public static String toGigaBytes(double bytes, int decimals)
Turns the number of bytes into GB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the GB string
-
toTeraBytes
public static String toTeraBytes(double bytes, int decimals)
Turns the number of bytes into TB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the TB string
-
toPetaBytes
public static String toPetaBytes(double bytes, int decimals)
Turns the number of bytes into PB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the PB string
-
toExaBytes
public static String toExaBytes(double bytes, int decimals)
Turns the number of bytes into EB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the EB string
-
toZettaBytes
public static String toZettaBytes(double bytes, int decimals)
Turns the number of bytes into ZB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the ZB string
-
toYottaBytes
public static String toYottaBytes(double bytes, int decimals)
Turns the number of bytes into YB. Uses 1024 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the YB string
-
toBestFitBytes
public static String toBestFitBytes(double bytes, int decimals)
Turns the number of bytes in the shortest representation (KB, MB, GB, ...). Uses 1024 as base.- Parameters:
bytes- the bytes to convertdecimals- the number of decimals after the decimal point- Returns:
- the optimal number string
-
toKibiBytes
public static String toKibiBytes(double bytes, int decimals)
Turns the number of bytes into KiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the KiB string
-
toMebiBytes
public static String toMebiBytes(double bytes, int decimals)
Turns the number of bytes into MiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the MiB string
-
toGibiBytes
public static String toGibiBytes(double bytes, int decimals)
Turns the number of bytes into GiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the GiB string
-
toTebiBytes
public static String toTebiBytes(double bytes, int decimals)
Turns the number of bytes into TiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the TiB string
-
toPebiBytes
public static String toPebiBytes(double bytes, int decimals)
Turns the number of bytes into PiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the PiB string
-
toExbiBytes
public static String toExbiBytes(double bytes, int decimals)
Turns the number of bytes into EiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the EiB string
-
toZebiBytes
public static String toZebiBytes(double bytes, int decimals)
Turns the number of bytes into ZiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the ZiB string
-
toYobiBytes
public static String toYobiBytes(double bytes, int decimals)
Turns the number of bytes into YiB. Uses 1000 as base.- Parameters:
bytes- the number of bytes to formatdecimals- the number of decimals after the decimal point- Returns:
- the YB string
-
toBestFitBiBytes
public static String toBestFitBiBytes(double bytes, int decimals)
Turns the number of bytes in the shortest representation (KiB, MiB, GiB, ...). Uses 1000 as base.- Parameters:
bytes- the bytes to convertdecimals- the number of decimals after the decimal point- Returns:
- the optimal number string
-
-