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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值