1. 程式人生 > >demo開發問題07之將byte[]轉為String

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;
    }