大家帮我看一下,一个简单的jsp程序

sunwatch 2003-08-19 03:21:43
我要做一个上传图像文件的页面,我先建一个临时文件,将上一个页面传过来的信息全部读入临时文件,但我发现程序陷入了死循环,麻烦大家帮我看一下
环境
win2000 j2sdk1.4.1 jswdk1.0.1

代码
String tempFileName=(String)session.getId();
File f1=new File("D:/2000",tempFileName);
FileOutputStream o=new FileOutputStream(f1);
InputStream in=request.getInputStream();
byte b[]=new byte[10000];
int n;
//将信息写入临时文件,就是这儿出了错
while((n=in.read(b))!=-1)
{o.write(b,0,n);
}
...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hubingufo 2003-08-20
  • 打赏
  • 举报
回复
用in.readline行不行
sunwatch 2003-08-19
  • 打赏
  • 举报
回复
不行啊!还是死循环!
joooy19 2003-08-19
  • 打赏
  • 举报
回复
定义N时要给其赋值
int n=0;
sunwatch 2003-08-19
  • 打赏
  • 举报
回复
我是在一本书上看来的源代码,呵呵,我学jsp刚刚一个星期多,我看了一下,每运行一次n=read(b),n的值都在变化,而当信息全部读完时,再运行n=read(b)就会陷入死循环。那我怎样才能把信息都读进来呢?各位给段代码看一看。
bluemeteor 2003-08-19
  • 打赏
  • 举报
回复
(n=in.read(b))!=-1

in.read(b)这个怎么会得到-1呢?
swithgirl 2003-08-19
  • 打赏
  • 举报
回复
我想是判断出了问题,我想n是返回一个读的BYTE的LENGTH,你查一下判断把。
sunwatch 2003-08-19
  • 打赏
  • 举报
回复
如果不加while循环都没错,我试着用了5个n=in.read(b);
o.write(b,0,n);
将一个文件全部读了进来,也没错,但如果再加上一个n=in.read(b);
o.write(b,0,n);就有错了,这是怎么回事啊?
javahui 2003-08-19
  • 打赏
  • 举报
回复
while((n=in.read(b))!=-1)
{o.write(b,0,n);
}
觉得好象没有错啊。

你在它的前面加一个in.read();看有没有错?

81,090

社区成员

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

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