Có cách nào để chuyển đổi Java String
sang một số byte[]
(không hộp đóng gói Byte[]
)?Làm thế nào để chuyển đổi chuỗi Java thành byte []?
Trong cố gắng này:
System.out.println(response.split("\r\n\r\n")[1]);
System.out.println("******");
System.out.println(response.split("\r\n\r\n")[1].getBytes().toString());
và tôi nhận được kết quả đầu ra riêng biệt. Không thể hiển thị đầu ra thứ nhất vì nó là một chuỗi gzip.
<A Gzip String>
******
[[email protected]
Địa chỉ thứ hai là địa chỉ. Có điều gì tôi đang làm sai? Tôi cần kết quả trong một byte[]
để đưa nó vào bộ giải nén gzip, như sau.
String decompressGZIP(byte[] gzip) throws IOException {
java.util.zip.Inflater inf = new java.util.zip.Inflater();
java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip);
java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein);
java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream();
int res = 0;
byte buf[] = new byte[1024];
while (res >= 0) {
res = gzin.read(buf, 0, buf.length);
if (res > 0) {
byteout.write(buf, 0, res);
}
}
byte uncompressed[] = byteout.toByteArray();
return (uncompressed.toString());
}
http://stackoverflow.com/questions/5499924/convert-java-string-to-byte-array – Paddyd
Xin lỗi , Tôi đang cố gắng để chuyển đổi một String để bytearray và trở lại và nhận được một kết quả sai. Tôi sẽ chỉnh sửa nó trong một thời gian và quay trở lại. –
Vấn đề của bạn là 'String.getBytes()' thực sự trả về một mảng byte, nhưng niềm tin của bạn rằng 'toString()' của một mảng byte sẽ trả lại kết quả hữu ích là không chính xác. –