FileWrite BufferedWriter et PrintWriter combinés

Ok, donc je suis en train d'apprendre sur l'I/O, et j'ai trouvé le code suivant dans l'une des diapositives. quelqu'un peut-il expliquer pourquoi il est nécessaire d'avoir un FileWrite, BufferedWriter et PrintWriter? Je sais BufferedWriter est pour le tampon de sortie et mettre tout ça à la fois, mais pourquoi utiliser FileWriter et PrintWriter ? dont ils ont très bien faire la même chose avec un peu de différence dans la gestion d'erreur, etc?

Et aussi pourquoi ils passent bw à PrintWriter?

      FileWriter fw = new FileWriter (file);
      BufferedWriter bw = new BufferedWriter (fw);
      PrintWriter outFile = new PrintWriter (bw);

source d'informationauteur Ahoura Ghotbi