demo開發問題07之將byte[]轉為String
一、需求
從http連線中讀取byte流,並將其轉化為String。
二、實現過程
1.思路
這裡有三種方法來承接這些bytes:String、StringBuilder、StringBuffer。
String: immutable,在記憶體中已經建立便無法修改。
StringBuilder:mutable(可以修改),執行緒不安全,操作速度快。
StringBuffer:mutable(可以修改),執行緒安全,操作速度慢。
綜上,我們選擇StringBuffer來承接這些bytes。但是StringBuffer.append()方法不可以傳入byte[]型別的資料,所以我們先使用String(byte[])生成String物件,然後呼叫StringBuffer.append()方法。
2.實現
private String getImageJson(InputStream in) #從http連線中獲取inputstream
{
byte temp[] = new byte[1024];
int count = 0;
StringBuilder json = new StringBuilder();
String imageJson = null;
try {
while((count = (in.read(temp)))!=0)
{
String str = new String(temp,0,count); #生成String
json.append(str); #新增到StringBuilder裡
}
imageJson = json.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return imageJson;
}