如何使用 bufferedreader/writer 复制 java 中的图像

How to copy image in java using bufferedreader/writer

    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();
        }
        }

这段代码有什么问题。 BufferedReader 和 Writer Class 有可能吗? 我知道如何使用 InputStream 和 OutputStream 复制图像,所以不要使用它来粘贴解决方案!!

Whats wrong with this code.

您正在使用 text-based 类 二进制数据。

Is it possible with BufferedReader and Writer Class?

不是在处理二进制数据时,不是。

I know how to to make copy of image using InputStream and OutputStream, So don't paste solution using that!

这是您应该使用的解决方案,因为这些是 类 专为二进制数据设计的。

从根本上说,用ReaderWriter换non-text数据就坏了,自讨苦吃。如果您在文本编辑器中打开文件但看不到文本,则它不是文本文件...(或者,它可能是您使用了错误编码的文本文件,但图像和声音之类的东西不是自然的文本。)

使用javax.imageio.ImageIO实用程序class,它有很多与图像处理相关的实用程序方法。

try{
    File imagefile = new File("download.png");
    BufferedImage image = ImageIO.read(imagefile);
    ImageIO.write(image, "png",new File("D:\Java.png"));
    .....
}