在java中将字节的字符串表示形式转换为字节[]
我的应用程序获取字节的字符串表示形式。我需要将其转换为字节[]数组。我正在使用下面的代码,但它不工作在java中将字节的字符串表示形式转换为字节[],java,string,bytearray,Java,String,Bytearray,我的应用程序获取字节的字符串表示形式。我需要将其转换为字节[]数组。我正在使用下面的代码,但它不工作 byte[] bytesArray = myString.getBytes(); 有人能帮我把它转换成字节[]的正确方法吗 编辑: 大家好,我的代码在这里。我有一个base64代码。此base64包含文本和图像数据的内容。我想从这段代码下载/创建一个图像。当我解码时,我得到文本和图像数据的字节[]。我将其转换为字符串,因为我必须区分每个部分。我使用了带分隔符的spilt,现在我有了一个字符串数
byte[] bytesArray = myString.getBytes();
有人能帮我把它转换成字节[]的正确方法吗
编辑:
大家好,我的代码在这里。我有一个base64代码。此base64包含文本和图像数据的内容。我想从这段代码下载/创建一个图像。当我解码时,我得到文本和图像数据的字节[]。我将其转换为字符串,因为我必须区分每个部分。我使用了带分隔符的spilt,现在我有了一个字符串数组。此字符串包含imagedata。我必须将其转换回字节以创建图像。请检查相同的代码。请
以下是相关代码:
byte[] imageByteArray = Base64.decodeBase64(imageDataString);
System.out.println(new String(imageByteArray));
String[] contentArray = new String(imageByteArray).split("--1_520B30B0_E358708");
for (int i = 0; i < contentArray.length; i++) {
if (i == 2) {
String[] parts = contentArray[i].split("binary");
InputStream is = new ByteArrayInputStream((parts[1].trim()).getBytes());
ImageInputStream iis = ImageIO.createImageInputStream(is);
System.out.println(iis);
image = ImageIO.read(iis);
ImageIO.write(image, "JPG", new File("E:/test1.JPG"));
}
}
您正在将Base64数据解码为字节[],然后将其转换为字符串。您不能这样做-二进制数据无法转换为字符串并返回到二进制而不丢失数据。您遇到了什么错误?寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误,以及在问题本身中重现这些问题所需的最短代码。@CommuSoft-不管怎样,代码都应该有效。它可能不会返回预期的结果,但这是一个完全不同的问题。请定义字节的字符串表示法的含义,特别是因为听起来您试图得到的是字符串中的字节表示法-正如其他人所说,这要求您指定编码,如果一个字符的编码是可变长度(如UTF8或多字节),或者是两者的组合(如UTF16),那么可能会导致数组比字符串长。Vanaja,您必须向我们展示一些原始数据。我怀疑您的意思是,您错误地将二进制数据接收到字符串中。如果出现这种情况,您无法通过转换为字节[]来修复它,但必须首先更正代码,使其永远不会转换为字符串。