Java - Convertir tamaño legible por humanos a bytes
He encontrado mucha información sobre la conversión de información de byte sin procesar en un formato legible para el ser humano, pero necesito hacer lo contrario, es decir, convertir el String "1.6 GB" en el valor largo 1717990000. ¿Existe algún componente incorporado? ¿Una forma definida de hacer esto, o tendré que rodar la mía?
[Editar]: Aquí está mi primera puñalada ...
static class ByteFormat extends NumberFormat {
@Override
public StringBuffer format(double arg0, StringBuffer arg1, FieldPosition arg2) {
// TODO Auto-generated method stub
return null;
}
@Override
public StringBuffer format(long arg0, StringBuffer arg1, FieldPosition arg2) {
// TODO Auto-generated method stub
return null;
}
@Override
public Number parse(String arg0, ParsePosition arg1) {
return parse (arg0);
}
@Override
public Number parse(String arg0) {
int spaceNdx = arg0.indexOf(" ");
double ret = Double.parseDouble(arg0.substring(0, spaceNdx));
String unit = arg0.substring(spaceNdx + 1);
int factor = 0;
if (unit.equals("GB")) {
factor = 1073741824;
}
else if (unit.equals("MB")) {
factor = 1048576;
}
else if (unit.equals("KB")) {
factor = 1024;
}
return ret * factor;
}
}