很有可能你的文件没读到,你写个绝对路径试试
你直接调用servlet,因为checked这个参数没读到,所以parseInt先出错
就报了invalid input

解决方案 »

  1.   

    是不是要把vote.txt放到servlet的目录下面啊
      

  2.   

    BufferedReader read=new BufferedReader(new FileReader("f:\tomcat\bin\vote.txt"));
    PrintWriter writer=new PrintWriter(new FileWriter("f:\tomcat\bin\vote.txt",false));
      

  3.   

    相对路径的起始位置是tomcat的安装目录,也就是你目前所存放vote.txt的bin目录的上级目录。
      

  4.   

    程序中
    BufferedReader read=new BufferedReader(new FileReader("/vote.txt"));vote.txt放在WEB-INF/classes下
      

  5.   

    BufferedReader read=new BufferedReader(new FileReader("f:\tomcat\bin\vote.txt"));
    PrintWriter writer=new PrintWriter(new FileWriter("f:\tomcat\bin\vote.txt",false));这个方法我试了,不行的!错误照旧!
      

  6.   

    catch(NumberFormatException ex){
       out.println("Invalid input!!");
       }这个抛出的是什么?
      

  7.   

    你把IOException的具体内容打出来看看?catch(NumberFormatException ex){
       out.println("Invalid input!!");
       }这个抛出的是你的checked的parse错误
    你直接调用servlet的url不给参数checkbutton就会有这个错
      

  8.   

    javax.servlet.http.*;你地这个包从那里下载地啊。不好意思。
      

  9.   

    bubblebird(小鳥) 说得应该可以。
      

  10.   

    不用下载,tomcat或resin自带的
      

  11.   

    谢谢rrrr,今晚我试试吧!若在测试servlet出现下面的错误,是什么原因??
    Location: /servlet/seevote
    Internal Servlet Error:java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:373)
    at java.lang.Integer.parseInt(Integer.java:454)
    at vote.doGet(vote.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
    at org.apache.tomcat.core.Handler.service(Handler.java:286)
    at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
    at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
    at java.lang.Thread.run(Thread.java:484)原码如下:
    import java.io.*;
    import java.util.*;
    import javax.servlet.http.*;
    import javax.servlet.*;
    public class seevote extend HttpServlet
    {
     public void doGet(HttpservletRequest request,HttpServletResponse response)
        throws IOException ,ServletException
     {String[] mstr=new string[3];
      int[] total=0;
      String[] name={"一般","不满意","满意"};
      response.setContentType("text/html");
      PrintWrinter out=response.getWrite();
      out.println("<html>");
      out.println("<head>");
      out.println("<title>谢谢您的合作</title>);
      out.println("</head>");
      out.println("<body>);
     try{
       
        BufferedReader read=new BufferedReader(new FileReader("vote.txt"));
        for(int i=0;i<3;i++)
         {
           mstr[i]=Integer.parseInt(read.readLine()+"";     }
         read.close();
        }
        catch(IOException e){}
        for(int i=0;i<3;i++)
          total+=Integer.parseInt(mstr[i]);
           out.println("font face=\"隶书\"size=\"4\">投票统计结果:</font>");
           out.println("<hr>");
        for(int i=0;i<3;i++) 
          {num[i]=Integer.parseInt(mstr[i])*400/total;
           out.println("<font face=\"隶书\"size=\"4\">+name[i]+":</font>");
           out.println("<img scr=\"c:\\progress.gif\"width="+"\""+num[i]+
          "\""+height=\"20\">);
           out.println(<br/>);}
           out.println("</body></html>");
           out.close();
          }
        } 还有在servlet中我怎么显示不出中文来!??
      

  12.   

    1,java.lang.NumberFormatException: null
    数据转化的问题,如调用parseint之类的。
    2,显示中文:response.setContentType("text/html;charset=gb2312");
    response is a reference to instance of HttpServletResponse,you know.
      

  13.   

    楼五的应该是这样的把?
    BufferedReader read=new BufferedReader(new FileReader("f:\\tomcat\\bin\\vote.txt"));
    PrintWriter writer=new PrintWriter(new FileWriter("f:\\tomcat\\bin\\vote.txt",false));
      

  14.   

    BufferedReader read=new BufferedReader(new FileReader("vote.txt"));
        for(int i=0;i<3;i++)
         {
           mstr[i]=Integer.parseInt(read.readLine()+"";     }
         read.close();
        }
        catch(IOException e){}
        for(int i=0;i<3;i++)
          total+=Integer.parseInt(mstr[i]);
    你不觉得这句有问题吗?
    捕获Io错误后不处理还继续往下执行。
    看你前面的帖子可以知道你的Servlet程序找不到vote.txt文件,所以你想跳过它继续往下做,这样的后果就是mstr数组根本没值--都是"",所以执行total+=Integer.parseInt(..);
    的时候就会抛出那个整型转换错误的异常,--你说""能转换成什么整型??至于前面找不到文件的原因,我由于很久没搞过WEB应用了也不太清楚,写绝对路径应该还是不行的,因为当时的程序是在WEB路径环境下,所以可能还是认不了。最简单的一个方法测试你应该把文件放在哪里的是:写一个同一目录下的servlet程序,调用它的结果就是生成一个文件,你再查一下这个文件在你机子上的哪个目录,再把vote.txt放在那里就应该可以啦。
      

  15.   

    还是不行!明天我会把tomcat删了,重新装一次!我快疯了!