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

标签 java java-io

    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 类可以吗? 我知道如何使用 InputStream 和 OutputStream 复制图像,所以不要使用它粘贴解决方案!!

最佳答案

Whats wrong with this code.

您正在使用基于文本的类来处理二进制数据。

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 处理非文本数据会被破坏,并且会带来麻烦。如果您在文本编辑器中打开文件并且看不到文本,则它不是文本文件...(或者,它可能是您使用错误编码的文本文件,但图像和声音等内容不是自然的文本。)

关于java - 如何使用 bufferedreader/writer 在 java 中复制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42278750/

相关文章:

java - 为什么 if 语句在 for 循环中不能正常工作?

java - libgdx 透明覆盖

java - 来自 FileOutputStream.close() 的设备的不适当 ioctl

exception - Hadoop:任务跟踪器不会启动 java.io.IOException

Java:列出局域网中计算机的文件和文件夹

java - 实现 Closeable 或实现 AutoCloseable

java - 安卓-InflateException : Binary XML file line #7

java - 列出我的 Java 应用程序正在使用的端口

java - 标识符名称中的数字没有问题吗?

Java Scanner(File) 行为异常,但 Scanner(FIleInputStream) 始终处理同一个文件