【发布时间】:2012-03-08 20:51:01
【问题描述】:
我正在尝试进行此类转换,但我遇到了一个小问题。
假设我有以下字符串:
String in = "1234567890123456";
然后我像这样将它转换为 ByteArrayInputStream:
ByteArrayInputStream bais = new ByteArrayInputStream(in.getBytes("UTF-8"));
我也有:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
然后我进行加密:
ch.encrypt(bais, baos);
所以现在我在baos 中有我的“输出”。当我做这样的事情时:
byte[] b2 = baos.toByteArray();
int[] i2 = toUnsignedIntArray(b2);
writeIntegersAsHex(i2);
在哪里(我知道这不是最优雅的方式,但仅用于测试):
public static void writeIntegersAsHex(int[] integers) {
int height = integers.length;
for (int i = 0; i < height; i++) {
System.out.print(Integer.toHexString(integers[i]) + ",");
}
System.out.println("");
}
我得到这样的输出:
d1,68,a0,46,32,37,25,64,67,71,17,df,ee,ef,2,12,
并且该输出是正确的,因为当我处理包含与in 相同的字符串的文件时,该输出是相同的。但我无法从baos 获得正确的字符串。
请不要问我为什么要这样做,因为这不是我的决定。我是一名学生,这是练习题之一。
算法(顺便说一句,它是 aes128)工作正常,文件但我无法将字符串输入流和输出流到字符串正常工作。
【问题讨论】:
标签: java string inputstream outputstream