applet与servlet通信后的类型转换问题

nbqiulei 2004-08-30 10:18:08
applet与servlet通信后,定义
InputStreamReader in = new InputStreamReader(uc.getInputStream());
然后以下代码可以顺利读取数据
int chr = in.read();
while(chr != -1) {
taResults.append(String.valueOf((char) chr));
chr = in.read();
}
可是我想用一个数组去依次保存读到的数据,就不行了,请问这是何故啊?
int chr = in.read();
for(int i=0;chr != -1;i++) {
test[i]=chr;
taResults.append(String.valueOf((char) test[i]));
chr = in.read();
}
感觉类型应该匹配的啊,int类型的数组,chr也是int型的。
...全文
150 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbqiulei 2004-09-11
  • 打赏
  • 举报
回复
up
nbqiulei 2004-09-04
  • 打赏
  • 举报
回复
自己再顶一下。
nbqiulei 2004-09-01
  • 打赏
  • 举报
回复
多谢指点。
1、假如我是用一个int类型的数组保存servlet传来的数据(数组是用在paint()中画曲线的),应该如何处理呢。
2、int是32bit 与 char之间可能出现不匹配,但上面程序中
taResults.append(String.valueOf((char) chr));为什么这里强制转换可以呢,chr也是定义为int型的。
Tasia 2004-08-31
  • 打赏
  • 举报
回复
char ch = 'a';
int i = ch; //没问题。较小的数据类型可以赋给较大的类型

ch = i; //错误,类型不匹配。因为较大的数据类型赋给较的类型可能会导致丢失数据
TinyJimmy 2004-08-31
  • 打赏
  • 举报
回复
while(in.ready()){
char[] cs = new char[1000];
int len = in.read(cs);
taResults.append(new String(cs, 0, len);
}
nbqiulei 2004-08-31
  • 打赏
  • 举报
回复
会不会是类型转换时出错呢,int是16bit,而char是8bit的,
(String.valueOf((char) test[i])) 这里不知道是不是又问题。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧