作者nf7series (真呆)
看板java
標題Re: [問題] InputStreamReader
時間Mon Feb 4 16:03:19 2008
※ 引述《TonyQ (骨頭)》之銘言:
: ※ 引述《nf7series (真呆)》之銘言:
: : 想請教各位大大,我想寫一個server的程式(使用socket)
: : 部分code如下:
: : InputStreamReader in=new InputStreamReader(connection.getInputStream());
: : int ch = 0;
: : String msg="";
: : do{
: : while((ch=in.read())!=-1){
: : msg+=(char)ch;
: : }
: : System.out.println(msg);
: : }while(!msg.equals("quit"));
: : 想印出從client接收到的文字,但若用上面寫法都印不出來,
: : 除非把msg+=(char)ch;改成System.out.print((char)ch);
: : 這樣才能印出來,請問是為什麼呢???
: : 謝謝了!
: 那上面印出來的會是什麼? 數字?
: 你可以使用String.valueOf(char )把char轉成字串
: 大量一個字的加法的話,我建議你採用StringBuffer
: StringBuffer sb=new StrinBuffer();
: sb.append((char)ch);
: msg=sb.toString();
上面印出來的是字元阿,不知道為什麼msg印不出來
另外,若我用
InputStreamReader in=new InputStreamReader(connection.getInputStream());
BufferedReader br=new BufferedReader(in);
String msg="";
while((msg=br.readLine())!=null){
System.out.print(msg);
}
也一樣印不出東西,有人知道為什麼嗎?
============================================
TonyQ的建議不錯,我有改成:
InputStreamReader in=new InputStreamReader(connection.getInputStream());
int ch=0;
StringBuffer msg=new StringBuffer();
while((ch=in.read())!=-1){
msg.append((char)ch);
}
System.out.print(msg);
但是沒印出東西,頗奇怪的...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.40
※ 編輯: nf7series 來自: 219.87.151.40 (02/04 16:08)
推 TonyQ:你while裡面沒放東西 -.- 至少要append(ch)啊 02/04 16:08
sorry...剛程式少打了一行....裡面是有東西的
※ 編輯: nf7series 來自: 219.87.151.40 (02/04 16:18)
推 TonyQ:在while裡面 放上 System.out.print("pass"); 02/04 16:22
→ TonyQ:在while 後放上 println("passend") 用來確定程式有跑完 02/04 16:23
→ TonyQ:事出必有因 一步一步找 02/04 16:23