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制作图像的副本,所以不要粘贴使用它的解决方案!
此代码有什么问题。
您正在使用基于文本的类来存储二进制数据。
BufferedReader和Writer类可以吗?
不,当您处理二进制数据时,不会。
我知道如何使用InputStream和OutputStream制作图像的副本,所以不要使用它粘贴解决方案!
那是您应该使用的解决方案,因为这些是为二进制数据设计的类。
从根本上来说,使用Reader或Writer处理非文本数据被破坏了,并带来了麻烦。如果您在文本编辑器中打开文件而看不到文本,则它不是文本文件…(或者,它可能是文本文件,您使用了错误的编码,但是图像和声音之类的东西不是自然的文字。)
Reader
Writer