Du fügst alles schon gelesene immer wieder hinzu. So geht's:
[code=Java]
public void schreiben() throws IOException{
text = tfSchreiben.getText();
StringBuilder sb = new StringBuilder();
try{
FileReader fr = new FileReader("Kopie von buch.txt");
BufferedReader br = new BufferedReader(fr);
String zeile = null;
while( (zeile = br.readLine()) != null )
{
sb.append(zeile).append(ls);
}
sb.append(text);
br.close();
BufferedWriter writer = new BufferedWriter(new FileWriter("Kopie von buch.txt"));
writer.write(sb.toString());
writer.close();
}
catch(Exception e){}
return;
}
[/code]
Die statische Variable [c]lesen[/c] kannst Du wieder entfernen.
BTW: Ich hab den StringBuffer durch StringBuilder ausgetauscht; weil's besser ist. 
Ebenius