Uso BufferedReader e PrintWriter per esaminare ciascuna riga di un file di input, modificare alcune righe e generare il risultato. Se una linea non subisce una modifica, viene semplicemente stampata come è per il file di output. Per qualche ragione, tuttavia, il processo termina prematuramente. Il codice simile a questa:Problemi con BufferedReader/PrintWriter?
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
FileOutputStream out = new FileOutputStream("out.txt");
PrintWriter p = new PrintWriter(out);
String line = in.readLine();
while(line!=null)
{
if(line is special)
do edits and p.println(edited_line);
else
p.println(line);
line = in.readLine();
}
Tuttavia, per qualche strana ragione, questo processo si conclude prematuramente (in realtà stampa un mezzo di una linea) verso la fine del mio file di input. Qualche ovvia ragione per questo? Il ciclo while viene definitivamente chiuso da null. Ed è verso la fine del mio file txt di linea 250k +. Grazie!
Sei assolutamente sicuro che non si smentisce mai vengono gettati? Cosa faresti se venisse lanciata un'eccezione *? Sarebbe registrato? –
Jon - non dimenticare che PrintWriter squude le eccezioni: devi usare il metodo "checkError" per vedere se ne è successo uno. – MetroidFan2002
Sì, ma BufferedReader e FileReader no - così la chiamata a readLine() potrebbe essere stata generata. –