Java中提供了Base64类用于编码和解码base64字符串,通过该类我们可以实现字符串和base64编码之间的相互转换,下面是详细的攻略:
Base64位编码与String字符串的相互转换
编码
在Java中,我们可以使用java.util.Base64
类的getEncoder()
方法获取Base64编码器,通过调用该对象的encodeToString()
方法就可以将普通字符串进行Base64编码:
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
String str = "hello world";
String base64Str = Base64.getEncoder().encodeToString(str.getBytes());
System.out.println("普通字符串:" + str);
System.out.println("Base64编码后字符串:" + base64Str);
}
}
输出结果为:
普通字符串:hello world
Base64编码后字符串:aGVsbG8gd29ybGQ=
解码
同样地,我们可以使用java.util.Base64
类的getDecoder()
方法获取Base64解码器,然后调用decode()
方法对Base64编码后的字符串进行解码:
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
String base64Str = "aGVsbG8gd29ybGQ=";
byte[] bytes = Base64.getDecoder().decode(base64Str);
String str = new String(bytes);
System.out.println("Base64编码后字符串:" + base64Str);
System.out.println("普通字符串:" + str);
}
}
输出结果为:
Base64编码后字符串:aGVsbG8gd29ybGQ=
普通字符串:hello world
Base64与Bitmap的相互转换
在Android应用中,我们常常需要将图片转换成Base64编码字符串进行网络传输,或者将Base64编码字符串转换成图片进行展示。下面是示例代码:
Bitmap转Base64编码字符串
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
public class BitmapUtil {
public static String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
public static Bitmap base64ToBitmap(String base64Str) {
byte[] bytes = Base64.decode(base64Str, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
}
使用示例:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test_image);
String base64Str = BitmapUtil.bitmapToBase64(bitmap);
Base64编码字符串转Bitmap
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
public class BitmapUtil {
public static Bitmap base64ToBitmap(String base64Str) {
byte[] bytes = Base64.decode(base64Str, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
public static String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
}
使用示例:
Bitmap bitmap = BitmapUtil.base64ToBitmap(base64Str);
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码 - Python技术站