Znalazłem wiele informacji na temat konwersji informacji o bajtach surowych do formatu czytelnego dla człowieka, ale muszę zrobić coś odwrotnego, tj. Przekonwertować ciąg "1.6 GB" na długą wartość 1717990000. Czy jest to wbudowany/dobrze zdefiniowany sposób, aby to zrobić, czy też będę musiał samodzielnie wykonać własne?Java - Konwertuj ludzki czytelny rozmiar na bajty
[Edit]: Oto moja pierwsza stab ...
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;
}
}
Klacz patrz bo koo, Andre! –
Twoje rozwiązanie jest mylące kilobajtami z kibibajtami, megabajtami z mebibajtami i gigabajtami z gibibajtami. – gilbertpilz