Java-IO-对接流
生活随笔
收集整理的這篇文章主要介紹了
Java-IO-对接流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不管是什么文件都可以用字節來表示,下面的例子是將圖片解碼成字節,然后再編碼成圖片。
過程
首先將圖片解碼,我們需要用文件字節輸入流:FIleInputStream
用FIleInputStream可以將圖片儲存到字節數組中,我們通過read(byte[])來讀取。然后我們可以通過字節數組輸出流將圖片的字節儲存到程序中。
字節數組輸出流:ByteArrayOutputStream 通過write(byte[])來儲存(這邊的byte[]是FileInputStream讀取到的數組),然后通過toByteArray()返回一個儲存了圖片字節的字節數組。
以上是將圖片解碼成字節并且儲存在一個字節數組中。
接下來是將圖片字節數組編碼成圖片,首先我們需要用字節數組輸入流ByteArrayInputStream來讀取字節數組,然后用文件字節輸出流FileOutputStream來輸出編碼得到的文件。
代碼
import java.io.*;public class 對接流 {/*** 將圖片寫入程序* @return*/static public byte[] TestIntputStreamAndByteArrayOuputStream(){final File file = new File("C:\\Users\\鄭大人\\Pictures\\DALI\\2.jpeg");InputStream is=null;final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();try{is=new FileInputStream(file);final byte[] bytes = new byte[1024 * 10];while(-1!=is.read(bytes)){byteArrayOutputStream.write(bytes);}return byteArrayOutputStream.toByteArray();}catch (Exception e){e.printStackTrace();}finally {try{if(null!=is){is.close();}}catch (Exception e){e.printStackTrace();}}return null;}/*** 將圖片輸出到文件* @param*/static public void TestOutputStreamAndByteArrayInputStream(byte[] bytes){final File file = new File("2.jpeg");OutputStream out=null;final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);try{out=new FileOutputStream(file);final byte[] bytes1 = new byte[1024 * 10];while(-1!=byteArrayInputStream.read(bytes1)){out.write(bytes1,0,bytes1.length);}}catch (Exception e){e.printStackTrace();}finally {try{if(null!=out){out.close();}}catch (Exception e){e.printStackTrace();}}}public static void main(String[] args) {final byte[] bytes = TestIntputStreamAndByteArrayOuputStream();System.out.println(bytes.length);TestOutputStreamAndByteArrayInputStream(bytes);} }效果
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Java-IO-对接流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈asio中async_accept函
- 下一篇: java美元兑换,(Java实现) 美元