[英]How to store into Byte or Byte array
该消息来自外部系统,并且以字节为单位,我必须在Java代码中使用它。 我将其作为一个字节并转换为String
。
任何人都可以帮助我仅将其作为字节接受,而不是将其带入字符串并转换为字节。
这是该外部系统的输出,直到等于:
wcLDxMXGx8jJ0fHy8 / T1AHsSNFw =
我想将其存储在byte
或byte[]
。
我已经尝试过自己做,但是error at =
。 我必须仅将其用作String
,然后将其用作字节,然后转换为byte
将是有问题的,而不是预期的那样。
您可以使用类javax.xml.bind.DatatypeConverter
(自Java SE 6更新3开始):
代码 :
public static void main(String[] args) {
String str = "wcLDxMXGx8jJ0fHy8/T1AHsSNFw=";
byte[] array = DatatypeConverter.parseBase64Binary(str);
System.out.println(Arrays.toString(array));
}
输出 :
[-63, -62, -61, -60, -59, -58, -57, -56, -55, -47, -15, -14, -13, -12, -11, 0, 123, 18, 52, 92]
try (ByteArrayInputStream bais = new ByteArrayInputStream()) {
try (InputStream externalSource = ...)) {
for (;;) {
int b = externalSource.read();
if (b == -1 || b == 'I') { // End of file or ASCII I
break;
}
bais.write((byte) b);
}
}
byte[] bytes = bais.toByteArray();
}
您的问题中有一个“耕种”,我将其翻译为条件|| b == 'I'
|| b == 'I'
您可能不打算这样做。 也许您使用=
而不是==
。
上面的文件末尾读取一个为-1的int,否则为一个字节值。
try-with-resources语法可确保关闭externalSource
和bais
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.