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 è:
Stop, tutto qui.codice:String linea; while ((linea = buff.readLine()) != null) { // usa linea ....... }
3) txt.setText(txt.getText()+line);
è altamente inefficiente