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;
    }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta