¿Cómo reemplazar una línea específica en un archivo usando Java?

¿Cómo escribo sobre una línea específica en un archivo de texto usando FileWriter e PrintWriter? No quiero tener que hacer un nuevo archivo cada vez.

Editar: ¿Puedo simplemente recorrer el archivo, obtener la longitud de la Cadena en el número de línea indicado y luego usar esa longitud para retroceder una vez que llegue a esa línea (para eliminar la Cadena) y escribir los nuevos datos?

public static void setVariable(int lineNumber, String data) {
    try { 
        // Creates FileWriter. Append is on.
        FileWriter fw = new FileWriter("data.txt", true);       

        PrintWriter pw = new PrintWriter(fw);       

        //cycles through file until line designated to be rewritten is reached
        for (int i = 1; i <= lineNumber; i++) {     
            //TODO: need to figure out how to change the append to false to overwrite data
            if (i == lineNumber) {
                pw.println(data);
                pw.close();
            } else {          
                // moves printwriter focus to next line (doesn't overwrite)
                pw.println(""); 
            }
        } 
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta