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!
这就是您应该使用的解决方案,因为这些是为二进制数据设计的类。
从根本上来说,使用 Reader
或 Writer
处理非文本数据会被破坏,并且会带来麻烦。如果您在文本编辑器中打开文件并且看不到文本,则它不是文本文件...(或者,它可能是您使用错误编码的文本文件,但图像和声音等内容不是自然的文本。)
关于java - 如何使用 bufferedreader/writer 在 java 中复制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42278750/