[英]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類可以實現嗎? 我知道如何使用InputStream和OutputStream制作圖像的副本,所以不要粘貼使用它的解決方案!
此代碼有什么問題。
您正在使用基於文本的類來存儲二進制數據。
BufferedReader和Writer類可以嗎?
不,當您處理二進制數據時,不會。
我知道如何使用InputStream和OutputStream制作圖像的副本,所以不要粘貼使用它的解決方案!
那是您應該使用的解決方案,因為這些是為二進制數據設計的類。
從根本上來說,使用Reader
或Writer
處理非文本數據的操作會中斷,並引起麻煩。 如果您在文本編輯器中打開文件而看不到文本,則它不是文本文件...(或者,它可能是文本文件,您使用了錯誤的編碼,但是圖像和聲音之類的東西不是自然的文字。)
使用javax.imageio.ImageIO
實用程序類,該類具有許多與圖像處理有關的實用程序方法。
try{
File imagefile = new File("download.png");
BufferedImage image = ImageIO.read(imagefile);
ImageIO.write(image, "png",new File("D:\\Java.png"));
.....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.