作者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)
1F:推 TonyQ:你while里面没放东西 -.- 至少要append(ch)啊 02/04 16:08
sorry...刚程式少打了一行....里面是有东西的
※ 编辑: nf7series 来自: 219.87.151.40 (02/04 16:18)
2F:推 TonyQ:在while里面 放上 System.out.print("pass"); 02/04 16:22
3F:→ TonyQ:在while 後放上 println("passend") 用来确定程式有跑完 02/04 16:23
4F:→ TonyQ:事出必有因 一步一步找 02/04 16:23