E' sbagliato il modo di scrivere i dati, rispetto alla lettura.
Il metodo write() di BufferedWriter scrive i dati così come sono, mentre tu poi cerchi di leggerli come se fossero uno sotto l'altro (cioè, come se fossero uno per riga)... in realtà in questo modo:
codice:
String porta = "1234";
String ip = "192.168.1.1";
// Scrivo la porta
writer.write( porta );
// Scrivo l'IP
writer.write( ip );
Ottieni questo file:
Cioè, i due dati sono attaccati uno dopo l'altro... quello che serve a te è un "a capo" tra il primo ed il secondo:
codice:
// Scrivo la porta
writer.write( porta );
// Vado a capo
writer.newLine();
// Scrivo l'IP
writer.write( ip );
// Faccio un flush
writer.flush();
Questo per essere coerenti con il codice che usi per leggere: readLine() legge una riga intera, quindi nel tuo caso stavi già leggendo IP e PORTA tutti attaccati con la prima lettura.
PS: ricordati di effettuare sempre un flush() prima di chiudere l'output... nessuno ti garantisce che i dati siano stati effettivamente scritti! E non ammazzare le eccezioni!
codice:
try {
...
} catch (Exception e) {
Log.e("TuoTag", "Descrizione errore", e);
}
Ciao.