我必须在 java 中使用字节数组和字符串。我使用 java 读取文件并从 getBytes() 方法获取字节码,即 [B@1d1cdf7]
这是否可以再次使用此代码。在我的程序中解码回java字符串。我需要字节数组,那么我如何将这个值存储在字节数组中。我想要像在另一个程序中一样的东西,我没有原始文本,我只有字节数组,那么我怎样才能取回字符串结果。
你可以使用这样的东西:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
while(/* condition */ ) { // Get bytes from the file
// Append bytes to the byteArray
stream.write(bytes);
}
String str = new String(stream.toByteArray()); // Get the string representation
您需要将 getBytes() 转换为字符串。
public String toString(){
return new String(getBytes());
}
要将字符串转换为字节数组,试试这个
String test = "This is a test";
byte[] bytes = test.getBytes();
System.out.println("Byte : " + bytes);
现在将字节数组转换为字符串试试这个
String s = new String(bytes);
System.out.println("Text : " + s);
输出
Byte : [B@25154f
Text : This is a test
您可以使用 Base64 编码。这种编码更适合和可移植地将二进制数据保存到字符串中。
Java中的Base64 api:
sun.misc.BASE64Encoder;
sun.misc.BASE64Decoder;