Ciao a tutti! Come da titolo ho un piccolo problema in un metodo, che ha come compito la lettura di un file .txt ( precedentemente salvato mediante il metodo "writeUTF" ) contenente stringhe.
DataInputStream inputPL = null;
final List<String> songs = new ArrayList<>();
try {
inputPL = new DataInputStream(new FileInputStream(nomePlaylist));
String name;
name = inputPL.readUTF();
while (name != null) {
songs.add(name);
name = inputPL.readUTF(); // L'ECCEZZIONE VIENE GENERATA QUI !
}
} catch (IOException e) { // L'ECCEZZIONE VIENE CATTURATA QUI !
this.getExc().delExc(e);
} finally {
this.setSongs(songs);
try {
inputPL.close();
} catch (IOException | NullPointerException e) {
this.getExc().setExcText(e);
}
}
Questo è il metodo, il problema avviene nel pezzo di codice commentato ! Ovvero io leggo una stringa alla volta, fino a quando la stringa che leggo non è "null" che significa che non c'è altro da leggere! E fin qui tutto bene, se non fosse che al posto di uscire dal while mi lancia una "IOException" e mi tocca catturarla e annullarla, cosa non molto elegante, per far si che il programma continui il suo funzionamento dato che nonostante l'eccezzione il metodo ha fatto il suo dovere e il file è stato letto correttamente dall'inizio alla fine! Vorrei sapere se c'è modo di evitare questa inutile eccezzione e risolvere la cosa in un modo un pò più elegante ? Grazie.