是通过对文件的读写完成的吧?
有几个需要注意的地方:
1、同步问题:读文件时需要加上关键字:synchronized
2、读数时转化为long型,利用readline来读
其它的就看你程序是不是对了。
怎么会到1000就变成零呢?莫非你用的是byte类型?!

解决方案 »

  1.   

    原代码如下,请多指教:<%@ page import="java.io.*" %>
    <%@ page import="java.lang.*" %>
    <%@ page contentType="text/html;charset=gb2312" %><%  String readStr=""; 
        int writeInt=1;
        String countFile=application.getRealPath("counter/count");  
        BufferedReader file=new BufferedReader(new FileReader(countFile));
         
        try
         {readStr=file.readLine();}
        catch (IOException e)
         {System.out.println("读取计数文件出错!");}    if (readStr==null) 
         readStr="0";
        else
         writeInt=java.lang.Integer.parseInt(readStr)+1;//判断cookie,刷新时不写入计数文件
        if (request.getHeader("Cookie")==null)     
    {try
        {PrintWriter pw=new PrintWriter(new FileOutputStream(countFile));
         pw.println(writeInt);
         pw.close();}
    catch (IOException e)
        {System.out.println(e.getMessage());}
       }
        else
       {writeInt=java.lang.Integer.parseInt(readStr)-1;
        readStr=java.lang.String.valueOf(writeInt);}    //把计数转化为图形,不足8位的前面补零
        int i=0;
        int k=8-readStr.length();
        String szOut="";

        for (i=0;i<k;i++) szOut=szOut+"<img src='counter/0.gif'>";
        for (i=0;i<readStr.length();i++) szOut=szOut+"<img src='counter/"+readStr.charAt(i)+".gif'>";
    %>   <table width="200" height="27" align="center" border="0" cellpadding="0" cellspacing="0">
        <tr>
         <td align="center"><%out.print(szOut);%></td>
        </tr>
    </table>