您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java如何實現圖片的復制”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java如何實現圖片的復制”文章能幫助大家解決問題。
public class TestBytesInputStream {public static void main(String[] args) { //復制a.jpg圖片byte[] datas=fileToBytesArray("D:\\a.jpg");byteArrayToFile(datas,"D:\\b.jpg"); }//1.圖片讀取到字節數組中// 1.圖片到程序——FileInputStream// 2.程序到字節數組——byteArrayOutputStream public static byte[] fileToBytesArray(String path) {//創建源頭與目的地 File src = new File(path);byte[] dest = null;//選擇流 InputStream is = null;ByteArrayOutputStream baos = null;try { //也可以使用 is = new BufferedInputStream(FileInputStream(src)); is = new FileInputStream(src); //也可以使用baos = new BufferedOutputStream(teArrayOutputStream()); baos = new ByteArrayOutputStream();//3.分段讀取 byte[] flush = new byte[1024 * 10];//緩沖容器 int len = -1;while ((len = is.read(flush)) != -1) { baos.write(flush, 0, len);//寫到字節數組中 } baos.flush();return baos.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally {try {if (null != is) { is.close(); } } catch (IOException e) { e.printStackTrace(); } }return null; }public static void byteArrayToFile(byte[]src,String path){File dest=new File(path);InputStream is=null;OutputStream os=null;try { is = new ByteArrayInputStream(src); os = new FileOutputStream(dest);byte[] flush = new byte[5];int len = -1;while ((len = is.read(flush)) != -1) { os.write(flush, 0, len); } }catch (IOException e) { e.printStackTrace(); } finally {try{if(os!=null){ os.close(); } }catch (IOException e) { e.printStackTrace(); } } } }
值得提醒的是,當is.read()沒有傳入參數的時候,復制的圖片會無法打開,因為它只能一個字節一個字節地讀,所以最好還是傳入數組
提高性能的兩個地方(1.緩沖容器的使用(相當于小卡車) 2.還可以使用字節緩沖流(相當于大卡車))
關于“Java如何實現圖片的復制”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。