In java, character einlesene

Guten Tag,

Ich möchte in java eine Zeichenfolge von der Konsole einlesen. z.B hallo.txt, damit ich dann Datei erstellen kann.

So war meine Idee

char ch=In.read();
StringBuilder file=new StringBuilder();
while (In.done()) {
file.append(ch);
ch=In.read();
}
Out.open(file.toString());

Nur Leider ergibt mir dass eine Endlosschleife in der er immer auf ein weiteres Zeichen wartet. Wie kann er auf diesem Weg erkennen, dass die Eingabe vorbei ist.

Oder gibt es ohnehin eine viel elegantere Lösung.

mfg, Don Hoolio