利用IO輸入、輸出流來複製圖片,你試過嗎?

將桌面的圖片利用IO流字節輸入輸出,將圖片複製到根目錄下!


舉個栗子,我複製的是這個圖片:
複製的圖片


那麼看一下圖片大小!(注意:字節數!)
在這裏插入圖片描述


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestFileIO {
    public static void main(String[] args) throws IOException {
        //將指定圖片,上傳到項目根目錄下
        //文件是在存儲設備中的-->讀到程序中-->寫到存儲設備中

        //輸出流
        FileInputStream fileInputStream = new FileInputStream("C:\\Users\\89698\\Desktop\\素材\\舉個栗子.jpg");
        //輸出流
        FileOutputStream fileOutputStream = new FileOutputStream("Files\\Ziph給你舉個栗子.jpg");
        //這裏注意我的這個圖片是:8.60 KB (8,813 字節)

        //第一種、
        //我們可以根據字節數分配字節給byte數組
//        byte[] bytes = new byte[9000];//9000個字節夠用了
//        fileOutputStream.write(bytes);
        //這時會出現一個問題,複製過去的圖片大小是:8.78 KB (9,000 字節)

        //上述第一種做法因此引出來一個問題,如果你不知道圖片的大小怎麼複製呢?

        //第二種、
        int len = 0;//代表每次讀到的字節
        while ((len = fileInputStream.read()) != -1) {//只要不讀到-1(也就是說讀到的全是有效字節)
            fileOutputStream.write(len);//讀多少,寫多少——複製後的圖片文件大小爲原來的大小:8.60 KB (8,813 字節)
        }

        //釋放資源
        fileInputStream.close();
        fileOutputStream.close();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章