¿Limitar la velocidad de carga en Java?

Me gustaría limitar mediante programación una operación de carga o descarga en Java. Supongo que todo lo que necesito hacer es verificar qué tan rápido va la carga e insertarThread.sleep() en consecuencia, así:

while (file.hasMoreLines()) {
    String line = file.readLine();
    for (int i = 0; i < line.length(); i+=128) {
        outputStream.writeBytes(line.substr(i, i+128).getBytes());
        if (isHittingLimit())
            Thread.sleep(500);
    }
}

¿Funcionará el código anterior? Si no, ¿hay una mejor manera de hacer esto? ¿Hay un tutorial que describa la teoría?

Respuestas a la pregunta(3)

Su respuesta a la pregunta