CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

为什么在formData = new String(buffer, "ISO8859_1"); 出异常!

楼主tomtigerlove(老虎)2005-08-01 13:51:06 在 Java / Web 开发 提问

下面一段程序是我接收上传文件数据流的代码,在文件小于13M时没有问题,但当文件大小超过时,就会在页面上报错,我进行断点监测后发现是  
  formData   =   new   String(buffer,   "ISO8859_1");   出了问题,在类中捕捉不到错误,请各位高手指点!!代码如下:  
   
                  try  
                  {  
                          //取得输入流  
                          DataInputStream   in   =   new   DataInputStream(request.getInputStream());  
                          //请求的内容类型  
                          String   contentType   =   request.getContentType();  
                          //内容长度  
                          formLength   =   request.getContentLength();  
                          System.out.println(formLength);  
                          if   (formLength   >   0)  
                          {  
                                  boundary   =   contentType.substring(contentType.lastIndexOf("=")   +   1,  
                                                                                                contentType.length());  
                                  byte   buffer[]   =   new   byte[formLength];  
                                  int   readedNumber   =   0;  
                                  int   totalReadedNumber   =   0;  
                                  while(totalReadedNumber   <   formLength)  
                                  {  
                                          readedNumber   =   in.read(buffer,   totalReadedNumber,formLength-totalReadedNumber);  
                                          totalReadedNumber   +=   readedNumber;  
                                  }  
                                  System.out.print(new   String(buffer,   "ISO8859_1"));  
                                  formData   =   new   String(buffer,   "ISO8859_1");              
                                    buffer   =   null;                    
                          }  
                  }  
                  catch(IOException   ex)  
                  {                  
                          ex.printStackTrace();  
                  }  
                  catch(NullPointerException   ex)  
                  {  
                  ex.printStackTrace();  
                  } 问题点数:100、回复次数:9Top

1 楼kwer(理想生活:白天种地,晚上上网 ) (▲▲▲▲▲▲)回复于 2005-08-01 13:52:27 得分 0

帮顶!Top

2 楼JudgeArm(末日审判官)回复于 2005-08-01 14:47:48 得分 0

楼主把异常贴出来看看Top

3 楼tomtigerlove(老虎)回复于 2005-08-01 15:02:21 得分 0

org.apache.jasper.JasperException  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)  
  at   java.lang.Thread.run(Thread.java:534)  
   
   
  root   cause    
   
  javax.servlet.ServletException  
  at   org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)  
  at   org.apache.jsp.ware_add_execute_jsp._jspService(ware_add_execute_jsp.java:149)  
  at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:853)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)  
  at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)  
  at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)  
  at   java.lang.Thread.run(Thread.java:534)  
   
  这是jsp页面的异常,在类里面没有抛出异常  
   
  Top

4 楼free_card(痛并快乐着)回复于 2005-08-01 15:18:13 得分 0

upTop

5 楼laughsmile(海边的星空)回复于 2005-08-02 17:24:38 得分 0

这么大的文件,为什么不使用缓存啊  
  DataInputStream   in   =   new   DataInputStream(request.getInputStream());  
  byte   []   buf   =   new   byte[4096];  
  int   len;  
  while((len   =   in.read(buf))>=   0)   {  
  }Top

6 楼wuzhu888(繁华的夜景)回复于 2005-08-02 17:36:40 得分 0

帮顶!!  
  Top

7 楼108041217(josso)回复于 2005-08-02 17:50:43 得分 0

try  
                  {  
  }  
  catch(Exception   ex)  
  {  
  }  
  這樣所有的都可以捕捉Top

8 楼tomtigerlove(老虎)回复于 2005-08-08 11:25:57 得分 0

谢谢各位,关键是现在formData   =   new   String(buffer,   "ISO8859_1");       到这里就报异常,不知道是怎么回事Top

9 楼tomtigerlove(老虎)回复于 2005-08-08 14:24:10 得分 0

string的最大值是多少Top

相关问题

  • C++中有没有string buffer类型的?
  • 问一个简单问题,String和String Buffer有什么区别?
  • C#中如何将string的值读到byte[] buffer里?
  • iso
  • string
  • String
  • string
  • string->???
  • string
  • string

关键词

  • 文件
  • formlength
  • formdata
  • iso8859
  • contenttype
  • buffer
  • request

得分解答快速导航

  • 帖主:tomtigerlove

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo