Allora già solo vedendo questi pezzi di codice posso dirti:

1) Spero vivamente che questi metodi scrivi() e leggi() NON siano nel table model.

2) Bisognerebbe capire che tipo di oggetti ci sono nel table model, nella "matrice" di dati insomma. Intendo dire proprio il tipo di oggetto ... sono tutti String?

3)
codice:
while(buff.readLine() != null){
    if(buff.readLine() == "\n"){
Comunque è molto "dubbio". Per ogni riga letta ne leggi un'altra. E tieni presente che readLine() NON mette nella stringa restituita il newline e comunque == "\n" è in ogni caso sbagliato, primo appunto perché readLine non dà i \n e secondo perché se anche lo mettesse nella stringa con la comparazione dei reference non ottieni il risultato voluto.