Это довольно простой вопрос. однако, как утверждают другие, этот код будет работать медленнее, чем ваш исходный код, но для знания вот ответ
private static String readAll(Reader rd) throws IOException {
String s = "";
int cp;
while ((cp = rd.read()) != -1) {
s += ((char) cp);
}
return s;
}