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型的。
...全文
123 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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])) 这里不知道是不是又问题。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-30 10:18
社区公告
暂无公告