Cómo copiar una imagen en Java usando el lector / escritor amortiguado

    File file = new File("download.png");
    File newfile = new File("D:\\Java.png");
    BufferedReader br=null;
    BufferedWriter bw=null;
    try {
        FileReader fr = new FileReader(file);
        FileWriter fw = new FileWriter(newfile);
        br = new BufferedReader(fr);
        bw = new BufferedWriter(fw);
        char[] buf = new char[1024];
        int bytesRead;
        while ((bytesRead = br.read(buf)) > 0) {
            bw.write(buf, 0, bytesRead);
        }
        bw.flush();
        }
        catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            br.close();
        bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        }

¿Qué tiene de malo este código? ¿Es posible con BufferedReader y Writer Class? Sé cómo hacer una copia de la imagen usando InputStream y OutputStream, ¡así que no pegue la solución con eso!

Respuestas a la pregunta(2)

Su respuesta a la pregunta