1. 程式人生 > >java base64流與圖片的互轉 針對inputStream.available()無效

java base64流與圖片的互轉 針對inputStream.available()無效

//獲取一個本地圖片檔案
String separator = File.separator;
File file = new File(“F:”+separator+”test.jpg”);
//建立一個位元組流
InputStream inputStream = new FileInputStream(file);
//把本地檔案 轉化成byte[]
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len=inputStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, len);
}
byte [] data = outStream.toByteArray();//轉化成byte[] 網路上都是 byte [] data = new byte[inputStream.available()];這種方法不可取
//關閉流
outStream.close();
inputStream.close();
//建立 BASE64Encoder 用來加密
BASE64Encoder base64Encoder = new BASE64Encoder();
//加密後字串 校驗是否正確,可以用網上線上工具去校驗
String str = base64Encoder.encode(data);
//—————————上面是轉base64字串
//—————————下面把base64字串轉成圖片寫到本地
//建立解密 BASE64Decoder
BASE64Decoder base64Decoder = new BASE64Decoder();
//解密字串轉位元組陣列
byte [] bs = base64Decoder.decodeBuffer(str);
//建立位元組寫入流
OutputStream imgOut = new FileOutputStream(“F:”+separator+”testDecoder.jpg”);
imgOut.write(bs);
//關閉流
imgOut.close();