Re: [問題] InputStreamReader
※ 引述《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)
推
02/04 16:08, , 1F
02/04 16:08, 1F
sorry...剛程式少打了一行....裡面是有東西的
※ 編輯: nf7series 來自: 219.87.151.40 (02/04 16:18)
推
02/04 16:22, , 2F
02/04 16:22, 2F
→
02/04 16:23, , 3F
02/04 16:23, 3F
→
02/04 16:23, , 4F
02/04 16:23, 4F
討論串 (同標題文章)