图像的java字节数组被存储为字符串,如何将其返回到字节数组
我使用安卓作为前端,Spring和Hibernate作为后端。我发送图像的字节数组以存储在此实体中:
public class ApplicationUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Lob
@Column(name = "image_bytes", columnDefinition="BLOB")
private byte[] imageBytes;
}
然而,在H2控制台中,我可以看到它被存储为一个字符串,数百个字符,所以我想字节数组在某种程度上被转换为一个字符串。所以我的问题是:
- 为什么会这样?为什么它会被存储为字符串?为什么不按原样存储字节数组呢李>
- 如果必须将其存储为字符串,那么如何将其解码回正确的字节数组?如果我获取字符串,并执行
myStringThatGotReturned.getBytes()
,我会得到一个不同的字节数组(因此基本上我不会得到正确的图像)。我怀疑我没有用正确的方式解读它。有没有办法把这个字符串解码回我发送到后端的字节数组李>
# 1 楼答案
您可以尝试以下方法之一: