作者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
1F:→ sbrhsieh:不建议这样搞~~~ 08/17 17:43
2F:→ bil193:sbrhsieh大 请问有更好的方式 可以告诉我吗^^ 08/18 08:32
4F:推 LaPass:把Stream读成byte[] 然後new string(byte[]) 这样..... 08/18 22:49
5F:推 lachtchlee:new String( 08/19 02:14