作者bil193 (丁丁)
看板java
標題Re: [問題] 可以把Stream 轉成String 嗎?
時間Wed Aug 17 14:37:03 2011
※ 引述《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
→ sbrhsieh:不建議這樣搞~~~ 08/17 17:43
→ bil193:sbrhsieh大 請問有更好的方式 可以告訴我嗎^^ 08/18 08:32
推 LaPass:把Stream讀成byte[] 然後new string(byte[]) 這樣..... 08/18 22:49
推 lachtchlee:new String( 08/19 02:14