J'utilise BufferedReader et PrintWriter pour parcourir chaque ligne d'un fichier d'entrée, modifier certaines lignes et afficher le résultat. Si une ligne ne subit pas de modification, elle est simplement imprimée telle quelle dans le fichier de sortie. Pour une raison quelconque, le processus se termine prématurément. Le code ressemble à ceci:Problèmes avec 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();
}
Cependant, pour une raison étrange, ce processus se termine prématurément (imprime en fait une moitié d'une ligne) vers la fin de mon dossier d'entrée. Une raison évidente pour cela? La boucle while est clairement terminée par un null. Et c'est vers la fin de mon fichier txt 250k + ligne. Merci!
Êtes-vous absolument certain qu'aucune exception ne sont jetés? Que feriez-vous si une exception * était * levée? Serait-il connecté? –
Jon - n'oubliez pas que PrintWriter squeltches exceptions - vous devez utiliser la méthode "checkError" pour voir si un se produit. – MetroidFan2002
Oui, mais BufferedReader et FileReader ne le font pas - donc l'appel à readLine() aurait pu être lancé. –