看板 java 關於我們 聯絡資訊
※ 引述《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