E oltre a quanto ha già precisato LeleFT, io aggiungo:

1) i close() vanno sempre fatti, in qualunque caso. Serve una gestione più accurata delle eccezioni, che consiste anche nell'uso della clausola "finally".

2) L'uso del flag eof è abbastanza inutile e più fumoso. Il modo "tipico" per leggere a righe è:

codice:
String linea;

while ((linea = buff.readLine()) != null) {
    // usa linea .......
}
Stop, tutto qui.

3) txt.setText(txt.getText()+line);
è altamente inefficiente