【发布时间】:2015-07-03 15:46:43
【问题描述】:
我必须在 java 中使用字节数组和字符串。我使用 java 读取文件并从 getBytes() 方法获取字节码,即 [B@1d1cdf7]
是否可以再次使用此代码。在我的程序中解码回 java字符串。 我需要字节数组,那么我如何将这个值存储在字节数组中。我想要某个东西 就像在另一个程序中一样,我没有原始文本,我只有字节 数组那么我怎样才能取回字符串结果。
【问题讨论】:
我必须在 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() 转换为 String。
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;
【讨论】: