簡體   English   中英

如何使用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類可以實現嗎? 我知道如何使用InputStream和OutputStream制作圖像的副本,所以不要粘貼使用它的解決方案!

此代碼有什么問題。

您正在使用基於文本的類來存儲二進制數據。

BufferedReader和Writer類可以嗎?

不,當您處理二進制數據時,不會。

我知道如何使用InputStream和OutputStream制作圖像的副本,所以不要粘貼使用它的解決方案!

那是您應該使用的解決方案,因為這些是為二進制數據設計的類。

從根本上來說,使用ReaderWriter處理非文本數據的操作會中斷,並引起麻煩。 如果您在文本編輯器中打開文件而看不到文本,則它不是文本文件...(或者,它可能是文本文件,您使用了錯誤的編碼,但是圖像和聲音之類的東西不是自然的文字。)

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM