Es posible verificar el progreso de URLconnection.getInputStream ()?

Quiero verificar el progreso de la descarga del archivo mediante la conexión URL. ¿Es posible o debería usar otra biblioteca? Esta es mi función de conexión de URL:

public static String sendPostRequest(String httpURL, String data) throws UnsupportedEncodingException, MalformedURLException, IOException {
    URL url = new URL(httpURL);

    URLConnection conn = url.openConnection();
    //conn.addRequestProperty("Content-Type", "text/html; charset=iso-8859-2");
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "ISO-8859-2"));
    String line, all = "";
    while ((line = rd.readLine()) != null) {
        all = all + line;
    }
    wr.close();
    rd.close();
    return all;
}

¿Entiendo que todo el archivo se descarga en esta línea (o worng)?:

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "ISO-8859-2"));

¿Entonces es posible hacer esto en este código?

Respuestas a la pregunta(3)

Su respuesta a la pregunta