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

看板java作者 (丁丁)時間12年前 (2011/08/17 14:37), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《bil193 (丁丁)》之銘言: : 使用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進位的內容...看不到信件內容(文字) : 懇請版上先進不吝指教,感激不盡 謝謝版上高手的指教,問題算是解決,自己回一下: BufferedReader in = new BufferedReader( new InputStreamReader( p.getInputStream() ) ); ←用這樣子,就能把InputStream弄成Reader的形式了 然後再: String content = ""; String thisLine =""; while( (thisLine = in.readLine())!=null){ System.out.println("讀到:" + thisLine); content+=thisLine + "\r\n"; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.69.9

08/17 17:43, , 1F
不建議這樣搞~~~
08/17 17:43, 1F

08/18 08:32, , 2F
sbrhsieh大 請問有更好的方式 可以告訴我嗎^^
08/18 08:32, 2F

08/18 21:19, , 3F
主要指收集data的方式不好。請看看http://ppt.cc/RG~(
08/18 21:19, 3F

08/18 22:49, , 4F
把Stream讀成byte[] 然後new string(byte[]) 這樣.....
08/18 22:49, 4F

08/19 02:14, , 5F
new String(
08/19 02:14, 5F
文章代碼(AID): #1EIs6HgO (java)
文章代碼(AID): #1EIs6HgO (java)