[問題] 可以把Stream 轉成String 嗎?

看板java作者 (丁丁)時間14年前 (2011/08/14 15:35), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
使用JavaMail API在做讀取郵件內容 標準做法是:(p是代表信件的某一部分(Part) InputStream reader = p.getInputStream(); //p呼叫getInputStream後,顧名思義它取得一個Stream reader = new BufferedInputStream(reader); 如果想把此Stream讀到的信件內容,全部存在一個String裡(或是StringBuffer裡) 可以行嗎? 我用: StringBuffer sb = new StringBuffer(); while( (b=reader.read())!=-1 ) { sb.append(b); } 這樣的結果是,sb的內容都是16進位的內容...看不到信件內容(文字) 懇請版上先進不吝指教,感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.69.9

08/14 15:43, , 1F
sb.append((char) b);
08/14 15:43, 1F

08/14 15:44, , 2F
喔~不對,你的 'reader' 是 InputStream not Reader
08/14 15:44, 2F

08/14 15:46, , 3F
使用適當encoding,把InputStream包裝成Reader來處理
08/14 15:46, 3F

08/14 15:55, , 4F
hint:使用byte array來處理
08/14 15:55, 4F

08/31 00:01, , 5F
念起來都差不多= =
08/31 00:01, 5F
文章代碼(AID): #1EHtggO8 (java)
文章代碼(AID): #1EHtggO8 (java)